Quarterly report pursuant to Section 13 or 15(d)

Outstanding Loans and Leases - Consumer Real Estate - Impaired Loans (Details)

v2.4.1.9
Outstanding Loans and Leases - Consumer Real Estate - Impaired Loans (Details) (USD $)
3 Months Ended
Mar. 31, 2015
Mar. 31, 2014
Dec. 31, 2014
Financing Receivable, Impaired [Line Items]      
Loans and leases $ 877,956,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome   $ 881,391,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
Chapter Seven Bankruptcy      
Financing Receivable, Impaired [Line Items]      
Loans and leases 2,300,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_LoanRestructuringModificationNameAxis
= bac_ChapterSevenBankruptcyMember
   
Nonperforming Financing Receivable | Chapter Seven Bankruptcy      
Financing Receivable, Impaired [Line Items]      
Loans and leases 1,100,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ChapterSevenBankruptcyMember
   
Federal Housing Administration | Fully Insured Loans | Chapter Seven Bankruptcy      
Financing Receivable, Impaired [Line Items]      
Loans and leases 996,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_InternalCreditAssessmentAxis
= bac_FullyInsuredLoansMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ChapterSevenBankruptcyMember
/ us-gaap_RegulatoryAgencyAxis
= bac_FederalHousingAdministrationMember
   
Consumer Real Estate      
Financing Receivable, Impaired [Line Items]      
Minimum period for modified payments under trial modification 3 months    
Maximum period for modified payments under trial modification 4 months    
Real estate acquired through foreclosure 632,000,000us-gaap_RealEstateAcquiredThroughForeclosure
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
  630,000,000us-gaap_RealEstateAcquiredThroughForeclosure
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
Loans with formal foreclosure proceeding in process 6,900,000,000bac_LoansandLeasesReceivableLoanswithFormalForeclosureProceedinginProcess
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
   
Consumer Real Estate | Residential Mortgage      
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]      
With no recorded allowance 18,524,000,000us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
  19,710,000,000us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
With an allowance recorded 8,058,000,000us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
  7,861,000,000us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
Total 26,582,000,000us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
  27,571,000,000us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
Impaired Financing Receivable, Recorded Investment [Abstract]      
With no recorded allowance 14,662,000,000us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
  15,605,000,000us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
With an allowance recorded 7,892,000,000us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
  7,665,000,000us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
Total 22,554,000,000us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
  23,270,000,000us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
Related Allowance 537,000,000us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
  531,000,000us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
Impaired Financing Receivable, Average Recorded Investment [Abstract]      
With no recorded allowance 15,393,000,000us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
16,360,000,000us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
 
With an allowance recorded 7,586,000,000us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
12,332,000,000us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
 
Total 22,979,000,000us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
28,692,000,000us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
 
Impaired Financing Receivable, Interest Income, Accrual and Cash Basis Method [Abstract]      
With no recorded allowance 108,000,000bac_ImpairedFinancingReceivablewithNoRelatedAllowanceInterestIncomeAccrualMethodandCashMethod
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
160,000,000bac_ImpairedFinancingReceivablewithNoRelatedAllowanceInterestIncomeAccrualMethodandCashMethod
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
 
With an allowance recorded 64,000,000bac_ImpairedFinancingReceivablewithRelatedAllowanceInterestIncomeAccrualMethodandCashMethod
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
131,000,000bac_ImpairedFinancingReceivablewithRelatedAllowanceInterestIncomeAccrualMethodandCashMethod
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
 
Total 172,000,000bac_ImpairedFinancingReceivableInterestIncomeAccrualMethodandCashMethod
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
291,000,000bac_ImpairedFinancingReceivableInterestIncomeAccrualMethodandCashMethod
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
 
Consumer Real Estate | Home equity      
Financing Receivable, Impaired [Line Items]      
Threshold period past due for write-off of financing receivable 180 days    
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]      
With no recorded allowance 3,636,000,000us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
  3,540,000,000us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
With an allowance recorded 861,000,000us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
  852,000,000us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Total 4,497,000,000us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
  4,392,000,000us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Impaired Financing Receivable, Recorded Investment [Abstract]      
With no recorded allowance 1,705,000,000us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
  1,630,000,000us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
With an allowance recorded 732,000,000us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
  728,000,000us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Total 2,437,000,000us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
  2,358,000,000us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Related Allowance 190,000,000us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
  196,000,000us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Impaired Financing Receivable, Average Recorded Investment [Abstract]      
With no recorded allowance 1,692,000,000us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
1,401,000,000us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
 
With an allowance recorded 714,000,000us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
751,000,000us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
 
Total 2,406,000,000us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
2,152,000,000us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
 
Impaired Financing Receivable, Interest Income, Accrual and Cash Basis Method [Abstract]      
With no recorded allowance 25,000,000bac_ImpairedFinancingReceivablewithNoRelatedAllowanceInterestIncomeAccrualMethodandCashMethod
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
22,000,000bac_ImpairedFinancingReceivablewithNoRelatedAllowanceInterestIncomeAccrualMethodandCashMethod
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
 
With an allowance recorded 7,000,000bac_ImpairedFinancingReceivablewithRelatedAllowanceInterestIncomeAccrualMethodandCashMethod
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
8,000,000bac_ImpairedFinancingReceivablewithRelatedAllowanceInterestIncomeAccrualMethodandCashMethod
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
 
Total $ 32,000,000bac_ImpairedFinancingReceivableInterestIncomeAccrualMethodandCashMethod
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
$ 30,000,000bac_ImpairedFinancingReceivableInterestIncomeAccrualMethodandCashMethod
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember