Annual report pursuant to Section 13 and 15(d)

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

v2.4.1.9
Outstanding Loans and Leases - Home Loans - 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
Loans and leases, measured at fair value 8,681,000,000us-gaap_LoansReceivableFairValueDisclosure 10,042,000,000us-gaap_LoansReceivableFairValueDisclosure
Refreshed loan to value high property value threshold 1,000,000bac_LoansandLeasesReceivableRefreshedLoantoValueHighValuePropertyValueThreshold  
Legacy Assets & Servicing Residential Mortgage | Pay option    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 3,200,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
/ us-gaap_ProductOrServiceAxis
= bac_PayOptionMember
4,400,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
/ us-gaap_ProductOrServiceAxis
= bac_PayOptionMember
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
Loans and leases, measured at fair value 2,077,000,000us-gaap_LoansReceivableFairValueDisclosure
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
2,164,000,000us-gaap_LoansReceivableFairValueDisclosure
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
Consumer Portfolio Segment | Core Portfolio Residential Mortgage    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 162,220,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioResidentialFinancingReceivableMember
177,336,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioResidentialFinancingReceivableMember
Consumer Portfolio Segment | Legacy Assets & Servicing Residential Mortgage    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 38,825,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
52,058,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
Consumer Portfolio Segment | Residential Mortgage PCI    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 15,152,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
18,672,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
Consumer Portfolio Segment | Residential Mortgage PCI | Pay option    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 2,800,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
/ us-gaap_ProductOrServiceAxis
= bac_PayOptionMember
4,000,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
/ us-gaap_ProductOrServiceAxis
= bac_PayOptionMember
Consumer Portfolio Segment | Core Portfolio Home Equity    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 51,887,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioHomeEquityFinancingReceivableMember
54,499,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioHomeEquityFinancingReceivableMember
Consumer Portfolio Segment | Legacy Assets & Servicing Home Equity    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 28,221,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
32,580,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
Consumer Portfolio Segment | Home Equity PCI    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 5,617,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_HomeEquityPurchaseCreditImpairedFinancingReceivableMember
6,593,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_HomeEquityPurchaseCreditImpairedFinancingReceivableMember
Consumer Portfolio Segment | Less than 620 | Core Portfolio Residential Mortgage    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 4,184,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioResidentialFinancingReceivableMember
5,334,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioResidentialFinancingReceivableMember
Consumer Portfolio Segment | Less than 620 | Legacy Assets & Servicing Residential Mortgage    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 6,313,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
9,955,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
Consumer Portfolio Segment | Less than 620 | Residential Mortgage PCI    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 6,109,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
9,129,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
Consumer Portfolio Segment | Less than 620 | Core Portfolio Home Equity    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 2,169,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioHomeEquityFinancingReceivableMember
2,415,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioHomeEquityFinancingReceivableMember
Consumer Portfolio Segment | Less than 620 | Legacy Assets & Servicing Home Equity    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 3,470,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
4,259,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
Consumer Portfolio Segment | Less than 620 | Home Equity PCI    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 864,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_HomeEquityPurchaseCreditImpairedFinancingReceivableMember
1,045,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_HomeEquityPurchaseCreditImpairedFinancingReceivableMember
Consumer Portfolio Segment | Greater than or equal to 620 and less than 680 | Core Portfolio Residential Mortgage    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 6,272,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioResidentialFinancingReceivableMember
7,164,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioResidentialFinancingReceivableMember
Consumer Portfolio Segment | Greater than or equal to 620 and less than 680 | Legacy Assets & Servicing Residential Mortgage    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 4,032,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
5,276,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
Consumer Portfolio Segment | Greater than or equal to 620 and less than 680 | Residential Mortgage PCI    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 3,014,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
3,349,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
Consumer Portfolio Segment | Greater than or equal to 620 and less than 680 | Core Portfolio Home Equity    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 3,683,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioHomeEquityFinancingReceivableMember
4,211,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioHomeEquityFinancingReceivableMember
Consumer Portfolio Segment | Greater than or equal to 620 and less than 680 | Legacy Assets & Servicing Home Equity    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 4,529,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
5,133,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
Consumer Portfolio Segment | Greater than or equal to 620 and less than 680 | Home Equity PCI    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 995,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_HomeEquityPurchaseCreditImpairedFinancingReceivableMember
1,172,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_HomeEquityPurchaseCreditImpairedFinancingReceivableMember
Consumer Portfolio Segment | Greater than or equal to 680 and less than 740 | Core Portfolio Residential Mortgage    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 21,946,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioResidentialFinancingReceivableMember
22,617,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioResidentialFinancingReceivableMember
Consumer Portfolio Segment | Greater than or equal to 680 and less than 740 | Legacy Assets & Servicing Residential Mortgage    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 6,463,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
7,639,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
Consumer Portfolio Segment | Greater than or equal to 680 and less than 740 | Residential Mortgage PCI    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 3,310,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
3,211,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
Consumer Portfolio Segment | Greater than or equal to 680 and less than 740 | Core Portfolio Home Equity    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 10,231,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioHomeEquityFinancingReceivableMember
11,726,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioHomeEquityFinancingReceivableMember
Consumer Portfolio Segment | Greater than or equal to 680 and less than 740 | Legacy Assets & Servicing Home Equity    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 7,905,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
9,143,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
Consumer Portfolio Segment | Greater than or equal to 680 and less than 740 | Home Equity PCI    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 1,651,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_HomeEquityPurchaseCreditImpairedFinancingReceivableMember
1,936,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_HomeEquityPurchaseCreditImpairedFinancingReceivableMember
Consumer Portfolio Segment | Greater than or equal to 740 | Core Portfolio Residential Mortgage    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 76,828,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioResidentialFinancingReceivableMember
72,509,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioResidentialFinancingReceivableMember
Consumer Portfolio Segment | Greater than or equal to 740 | Legacy Assets & Servicing Residential Mortgage    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 10,037,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
11,653,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
Consumer Portfolio Segment | Greater than or equal to 740 | Residential Mortgage PCI    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 2,719,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
2,983,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
Consumer Portfolio Segment | Greater than or equal to 740 | Core Portfolio Home Equity    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 35,804,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioHomeEquityFinancingReceivableMember
36,147,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioHomeEquityFinancingReceivableMember
Consumer Portfolio Segment | Greater than or equal to 740 | Legacy Assets & Servicing Home Equity    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 12,317,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
14,045,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
Consumer Portfolio Segment | Greater than or equal to 740 | Home Equity PCI    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 2,107,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_HomeEquityPurchaseCreditImpairedFinancingReceivableMember
2,440,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_HomeEquityPurchaseCreditImpairedFinancingReceivableMember
Consumer Portfolio Segment | Less than or equal to 90 percent | Core Portfolio Residential Mortgage    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 100,255,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioResidentialFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueLessThanOrEqualToNinetyPercentMember
94,255,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioResidentialFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueLessThanOrEqualToNinetyPercentMember
Consumer Portfolio Segment | Less than or equal to 90 percent | Legacy Assets & Servicing Residential Mortgage    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 18,499,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueLessThanOrEqualToNinetyPercentMember
21,587,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueLessThanOrEqualToNinetyPercentMember
Consumer Portfolio Segment | Less than or equal to 90 percent | Residential Mortgage PCI    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 9,972,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueLessThanOrEqualToNinetyPercentMember
10,605,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueLessThanOrEqualToNinetyPercentMember
Consumer Portfolio Segment | Less than or equal to 90 percent | Core Portfolio Home Equity    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 45,414,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioHomeEquityFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueLessThanOrEqualToNinetyPercentMember
44,892,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioHomeEquityFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueLessThanOrEqualToNinetyPercentMember
Consumer Portfolio Segment | Less than or equal to 90 percent | Legacy Assets & Servicing Home Equity    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 17,453,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueLessThanOrEqualToNinetyPercentMember
17,006,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueLessThanOrEqualToNinetyPercentMember
Consumer Portfolio Segment | Less than or equal to 90 percent | Home Equity PCI    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 2,046,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_HomeEquityPurchaseCreditImpairedFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueLessThanOrEqualToNinetyPercentMember
1,598,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_HomeEquityPurchaseCreditImpairedFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueLessThanOrEqualToNinetyPercentMember
Consumer Portfolio Segment | Greater than 90 percent but less than or equal to 100 percent | Core Portfolio Residential Mortgage    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 4,958,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioResidentialFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanNinetyPercentButLessThanOrEqualToHundredPercentMember
7,013,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioResidentialFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanNinetyPercentButLessThanOrEqualToHundredPercentMember
Consumer Portfolio Segment | Greater than 90 percent but less than or equal to 100 percent | Legacy Assets & Servicing Residential Mortgage    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 3,081,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanNinetyPercentButLessThanOrEqualToHundredPercentMember
4,216,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanNinetyPercentButLessThanOrEqualToHundredPercentMember
Consumer Portfolio Segment | Greater than 90 percent but less than or equal to 100 percent | Residential Mortgage PCI    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 2,005,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanNinetyPercentButLessThanOrEqualToHundredPercentMember
2,638,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanNinetyPercentButLessThanOrEqualToHundredPercentMember
Consumer Portfolio Segment | Greater than 90 percent but less than or equal to 100 percent | Core Portfolio Home Equity    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 2,442,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioHomeEquityFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanNinetyPercentButLessThanOrEqualToHundredPercentMember
3,178,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioHomeEquityFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanNinetyPercentButLessThanOrEqualToHundredPercentMember
Consumer Portfolio Segment | Greater than 90 percent but less than or equal to 100 percent | Legacy Assets & Servicing Home Equity    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 3,272,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanNinetyPercentButLessThanOrEqualToHundredPercentMember
3,948,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanNinetyPercentButLessThanOrEqualToHundredPercentMember
Consumer Portfolio Segment | Greater than 90 percent but less than or equal to 100 percent | Home Equity PCI    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 1,048,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_HomeEquityPurchaseCreditImpairedFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanNinetyPercentButLessThanOrEqualToHundredPercentMember
1,121,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_HomeEquityPurchaseCreditImpairedFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanNinetyPercentButLessThanOrEqualToHundredPercentMember
Consumer Portfolio Segment | Greater than 100 percent | Core Portfolio Residential Mortgage    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 4,017,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioResidentialFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanHundredPercentMember
6,356,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioResidentialFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanHundredPercentMember
Consumer Portfolio Segment | Greater than 100 percent | Legacy Assets & Servicing Residential Mortgage    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 5,265,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanHundredPercentMember
8,720,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanHundredPercentMember
Consumer Portfolio Segment | Greater than 100 percent | Residential Mortgage PCI    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 3,175,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanHundredPercentMember
5,429,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanHundredPercentMember
Consumer Portfolio Segment | Greater than 100 percent | Core Portfolio Home Equity    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 4,031,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioHomeEquityFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanHundredPercentMember
6,429,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioHomeEquityFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanHundredPercentMember
Consumer Portfolio Segment | Greater than 100 percent | Legacy Assets & Servicing Home Equity    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 7,496,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanHundredPercentMember
11,626,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanHundredPercentMember
Consumer Portfolio Segment | Greater than 100 percent | Home Equity PCI    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 2,523,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_HomeEquityPurchaseCreditImpairedFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanHundredPercentMember
3,874,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_HomeEquityPurchaseCreditImpairedFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedLoanToValueGreaterThanHundredPercentMember
Consumer Portfolio Segment | Fully Insured Loans | Core Portfolio Residential Mortgage    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 52,990,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioResidentialFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_FullyInsuredLoansMember
69,712,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioResidentialFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_FullyInsuredLoansMember
Consumer Portfolio Segment | Fully Insured Loans | Legacy Assets & Servicing Residential Mortgage    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 11,980,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_FullyInsuredLoansMember
17,535,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_FullyInsuredLoansMember
Consumer Portfolio Segment | Fully Insured Loans | Residential Mortgage PCI    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_FullyInsuredLoansMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_ResidentialMortgagePurchaseCreditImpairedFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_FullyInsuredLoansMember
Consumer Portfolio Segment | Fully Insured Loans | Core Portfolio Home Equity    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioHomeEquityFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_FullyInsuredLoansMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_CorePortfolioHomeEquityFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_FullyInsuredLoansMember
Consumer Portfolio Segment | Fully Insured Loans | Legacy Assets & Servicing Home Equity    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_FullyInsuredLoansMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_FullyInsuredLoansMember
Consumer Portfolio Segment | Fully Insured Loans | Home Equity PCI    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases $ 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_HomeEquityPurchaseCreditImpairedFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_FullyInsuredLoansMember
$ 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_HomeEquityPurchaseCreditImpairedFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_FullyInsuredLoansMember