Annual report pursuant to Section 13 and 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 $)
Dec. 31, 2014
Dec. 31, 2013
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases $ 881,391,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome $ 928,233,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
Percentage outstanding, current or less than 30 days past due 93.44%bac_FinancingReceivableRecordedInvestmentCurrentand1to29DaysPastDuePercentageofTotalOutstanding 91.99%bac_FinancingReceivableRecordedInvestmentCurrentand1to29DaysPastDuePercentageofTotalOutstanding
Percentage outstanding, Equal to Greater than 90 days past due 2.24%bac_FinancingReceivableRecordedInvestmentEqualtoGreaterthan90DaysPastDuePercentageofTotalOutstanding 3.04%bac_FinancingReceivableRecordedInvestmentEqualtoGreaterthan90DaysPastDuePercentageofTotalOutstanding
Other consumer | Non United States    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 3,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
5,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Consumer Portfolio Segment    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 488,570,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
531,950,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
Consumer Portfolio Segment | Credit Card Receivable | United States    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 91,879,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
92,338,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
Consumer Portfolio Segment | Credit Card Receivable | Non United States    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 10,465,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
11,541,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ 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
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
98.00%bac_FinancingReceivableRecordedInvestmentCurrentand1to29DaysPastDuePercentageofTotalOutstanding
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Percentage outstanding, 30-89 days past due 1.00%bac_FinancingReceivableRecordedInvestment30to89DaysPastDuePercentageofTotalOutstanding
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
1.00%bac_FinancingReceivableRecordedInvestment30to89DaysPastDuePercentageofTotalOutstanding
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ 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
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
1.00%bac_FinancingReceivableRecordedInvestmentEqualtoGreaterthan90DaysPastDuePercentageofTotalOutstanding
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Consumer Portfolio Segment | Credit Card Receivable | Less than 620 | United States    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 4,467,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
4,989,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
Consumer Portfolio Segment | Credit Card Receivable | Less than 620 | Non United States    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Consumer Portfolio Segment | Credit Card Receivable | Greater than or equal to 620 and less than 680 | United States    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 12,177,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
12,753,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
Consumer Portfolio Segment | Credit Card Receivable | Greater than or equal to 620 and less than 680 | Non United States    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Consumer Portfolio Segment | Credit Card Receivable | Greater than or equal to 680 and less than 740 | United States    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 34,986,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
35,413,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
Consumer Portfolio Segment | Credit Card Receivable | Greater than or equal to 680 and less than 740 | Non United States    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Consumer Portfolio Segment | Credit Card Receivable | Greater than or equal to 740 | United States    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 40,249,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
39,183,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
Consumer Portfolio Segment | Credit Card Receivable | Greater than or equal to 740 | Non United States    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Consumer Portfolio Segment | Credit Card Receivable | Other internal credit metrics | United States    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_OtherInternalCreditMetricsMember
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_OtherInternalCreditMetricsMember
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
Consumer Portfolio Segment | Credit Card Receivable | Other internal credit metrics | Non United States    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 10,465,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_OtherInternalCreditMetricsMember
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
11,541,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_OtherInternalCreditMetricsMember
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Consumer Portfolio Segment | Direct/Indirect Consumer    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 80,381,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
82,192,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
Securities based lending overcollateralized 39,700,000,000bac_LoansandLeasesReceivableSecuritiesBasedLendingOvercollateralized
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
35,800,000,000bac_LoansandLeasesReceivableSecuritiesBasedLendingOvercollateralized
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
Loans no longer originated by corporation 632,000,000bac_LoansandLeasesReceivableLoansNoLongerOriginatedbyCorporation
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
4,100,000,000bac_LoansandLeasesReceivableLoansNoLongerOriginatedbyCorporation
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
Consumer Portfolio Segment | Direct/Indirect Consumer | Less than 620    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 1,296,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
1,220,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
Consumer Portfolio Segment | Direct/Indirect Consumer | Greater than or equal to 620 and less than 680    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 1,892,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
3,345,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
Consumer Portfolio Segment | Direct/Indirect Consumer | Greater than or equal to 680 and less than 740    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 10,749,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
9,887,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
Consumer Portfolio Segment | Direct/Indirect Consumer | Greater than or equal to 740    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 25,279,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
26,220,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
Consumer Portfolio Segment | Direct/Indirect Consumer | Other internal credit metrics    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 41,165,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_OtherInternalCreditMetricsMember
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
41,520,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_OtherInternalCreditMetricsMember
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
Consumer Portfolio Segment | Other consumer    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 1,846,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
1,977,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
Percentage from exited businesses 37.00%bac_LoansandLeasesReceivablePercentageFromExitedBusinesses
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
60.00%bac_LoansandLeasesReceivablePercentageFromExitedBusinesses
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
Consumer Portfolio Segment | Other consumer | Less than 620    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 266,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
539,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
Consumer Portfolio Segment | Other consumer | Greater than or equal to 620 and less than 680    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 227,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
264,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
Consumer Portfolio Segment | Other consumer | Greater than or equal to 680 and less than 740    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 307,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
199,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
Consumer Portfolio Segment | Other consumer | Greater than or equal to 740    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 881,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
188,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
Consumer Portfolio Segment | Other consumer | Other internal credit metrics    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases $ 165,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_OtherInternalCreditMetricsMember
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
$ 787,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_OtherInternalCreditMetricsMember
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember