Allowance for Credit Losses - Allowance by Portfolio Segment (Details) (USD $)
In Millions, unless otherwise specified |
12 Months Ended | ||
---|---|---|---|
Dec. 31, 2014
|
Dec. 31, 2013
|
Dec. 31, 2012
|
|
Allowance for Loan and Lease Losses [Roll Forward] | |||
Allowance for loan and lease losses, January 1 | $ 17,428us-gaap_LoansAndLeasesReceivableAllowance | $ 24,179us-gaap_LoansAndLeasesReceivableAllowance | $ 33,783us-gaap_LoansAndLeasesReceivableAllowance |
Loans and leases charged off | (7,026)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs | (10,369)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs | (17,672)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs |
Recoveries of loans and leases previously charged off | 2,643us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts | 2,472us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts | 2,764us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts |
Net charge-offs | (4,383)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet | (7,897)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet | (14,908)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet |
Provision for loan and lease losses | 2,231us-gaap_ProvisionForLoanAndLeaseLosses | 3,574us-gaap_ProvisionForLoanAndLeaseLosses | 8,310us-gaap_ProvisionForLoanAndLeaseLosses |
Other | (47)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet | (92)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet | (186)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet |
Allowance for loan and lease losses, December 31 | 14,419us-gaap_LoansAndLeasesReceivableAllowance | 17,428us-gaap_LoansAndLeasesReceivableAllowance | 24,179us-gaap_LoansAndLeasesReceivableAllowance |
Reserve for unfunded lending commitments, January 1 | 17,912us-gaap_FinancingReceivableAllowanceForCreditLosses | 24,692us-gaap_FinancingReceivableAllowanceForCreditLosses | |
Provision for unfunded lending commitments | 2,275us-gaap_ProvisionForLoanLeaseAndOtherLosses | 3,556us-gaap_ProvisionForLoanLeaseAndOtherLosses | 8,169us-gaap_ProvisionForLoanLeaseAndOtherLosses |
Reserve for unfunded lending commitments, December 31 | 14,947us-gaap_FinancingReceivableAllowanceForCreditLosses | 17,912us-gaap_FinancingReceivableAllowanceForCreditLosses | 24,692us-gaap_FinancingReceivableAllowanceForCreditLosses |
Allowance for credit losses | 14,947us-gaap_FinancingReceivableAllowanceForCreditLosses | 17,912us-gaap_FinancingReceivableAllowanceForCreditLosses | 24,692us-gaap_FinancingReceivableAllowanceForCreditLosses |
Home Loans | |||
Allowance for Loan and Lease Losses [Roll Forward] | |||
Allowance for loan and lease losses, January 1 |
8,518us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
14,933us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
21,079us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
Loans and leases charged off |
(2,219)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
(3,766)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
(7,849)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
Recoveries of loans and leases previously charged off |
1,426us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
879us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
496us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
Net charge-offs |
(793)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
(2,887)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
(7,353)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
Provision for loan and lease losses |
(976)us-gaap_ProvisionForLoanAndLeaseLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
(1,124)us-gaap_ProvisionForLoanAndLeaseLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
4,073us-gaap_ProvisionForLoanAndLeaseLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
Other |
(4)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
(68)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
(46)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
Allowance for loan and lease losses, December 31 |
5,935us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
8,518us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
14,933us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
Reserve for unfunded lending commitments, January 1 |
8,518us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
14,933us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
|
Reserve for unfunded lending commitments, December 31 |
5,935us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
8,518us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
14,933us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
Allowance for credit losses |
5,935us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
8,518us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
14,933us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
Valuation allowance |
1,652us-gaap_FinancingReceivableAllowanceForCreditLossesAcquiredWithDeterioratedCreditQuality / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
2,493us-gaap_FinancingReceivableAllowanceForCreditLossesAcquiredWithDeterioratedCreditQuality / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember |
|
Credit Card and Other Consumer | |||
Allowance for Loan and Lease Losses [Roll Forward] | |||
Allowance for loan and lease losses, January 1 |
4,905us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
6,140us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
8,569us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
Loans and leases charged off |
(4,149)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
(5,495)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
(7,727)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
Recoveries of loans and leases previously charged off |
871us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
1,141us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
1,519us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
Net charge-offs |
(3,278)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
(4,354)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
(6,208)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
Provision for loan and lease losses |
2,458us-gaap_ProvisionForLoanAndLeaseLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
3,139us-gaap_ProvisionForLoanAndLeaseLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
3,899us-gaap_ProvisionForLoanAndLeaseLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
Other |
(38)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
(20)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
(120)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
Allowance for loan and lease losses, December 31 |
4,047us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
4,905us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
6,140us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
Reserve for unfunded lending commitments, January 1 |
4,905us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
6,140us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
|
Reserve for unfunded lending commitments, December 31 |
4,047us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
4,905us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
6,140us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
Allowance for credit losses |
4,047us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
4,905us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
6,140us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember |
Commercial | |||
Allowance for Loan and Lease Losses [Roll Forward] | |||
Allowance for loan and lease losses, January 1 |
4,005us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
3,106us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
4,135us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
Loans and leases charged off |
(658)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
(1,108)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
(2,096)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
Recoveries of loans and leases previously charged off |
346us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
452us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
749us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
Net charge-offs |
(312)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
(656)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
(1,347)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
Provision for loan and lease losses |
749us-gaap_ProvisionForLoanAndLeaseLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
1,559us-gaap_ProvisionForLoanAndLeaseLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
338us-gaap_ProvisionForLoanAndLeaseLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
Other |
(5)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
(4)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
(20)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
Allowance for loan and lease losses, December 31 |
4,437us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
4,005us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
3,106us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
Reserve for unfunded lending commitments, January 1 |
4,489us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
3,619us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
|
Reserve for unfunded lending commitments, December 31 |
4,965us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
4,489us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
3,619us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
Allowance for credit losses |
4,965us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
4,489us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
3,619us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
Receivables Acquired with Deteriorated Credit Quality | |||
Allowance for Loan and Lease Losses [Roll Forward] | |||
Loans and leases charged off |
(810)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember |
(2,336)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember |
(2,820)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember |
Provision for loan and lease losses |
(31)us-gaap_ProvisionForLoanAndLeaseLosses / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember |
(707)us-gaap_ProvisionForLoanAndLeaseLosses / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember |
(103)us-gaap_ProvisionForLoanAndLeaseLosses / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember |
Valuation allowance |
1,652us-gaap_FinancingReceivableAllowanceForCreditLossesAcquiredWithDeterioratedCreditQuality / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember |
2,493us-gaap_FinancingReceivableAllowanceForCreditLossesAcquiredWithDeterioratedCreditQuality / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember |
5,500us-gaap_FinancingReceivableAllowanceForCreditLossesAcquiredWithDeterioratedCreditQuality / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember |
Receivables Acquired with Deteriorated Credit Quality | Home Loans | |||
Allowance for Loan and Lease Losses [Roll Forward] | |||
Loans and leases charged off |
(810)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember |
(2,336)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember |
(2,820)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember |
Receivables Acquired with Deteriorated Credit Quality | Credit Card and Other Consumer | |||
Allowance for Loan and Lease Losses [Roll Forward] | |||
Loans and leases charged off |
0us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember |
0us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember |
0us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember |
Receivables Acquired with Deteriorated Credit Quality | Commercial | |||
Allowance for Loan and Lease Losses [Roll Forward] | |||
Loans and leases charged off |
0us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember |
0us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember |
0us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember |
Unfunded loan commitments | |||
Allowance for Loan and Lease Losses [Roll Forward] | |||
Other |
(11)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
(60)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
|
Reserve for unfunded lending commitments, January 1 |
484us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
513us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
714us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
Provision for unfunded lending commitments |
44us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
(18)us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
(141)us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
Reserve for unfunded lending commitments, December 31 |
528us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
484us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
513us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
Allowance for credit losses |
528us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
484us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
513us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
Unfunded loan commitments | Home Loans | |||
Allowance for Loan and Lease Losses [Roll Forward] | |||
Other |
0us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
0us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
|
Reserve for unfunded lending commitments, January 1 |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
Provision for unfunded lending commitments |
0us-gaap_ProvisionForLoanLeaseAndOtherLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
0us-gaap_ProvisionForLoanLeaseAndOtherLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
0us-gaap_ProvisionForLoanLeaseAndOtherLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
Reserve for unfunded lending commitments, December 31 |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
Allowance for credit losses |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
Unfunded loan commitments | Credit Card and Other Consumer | |||
Allowance for Loan and Lease Losses [Roll Forward] | |||
Other |
0us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
0us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
|
Reserve for unfunded lending commitments, January 1 |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
Provision for unfunded lending commitments |
0us-gaap_ProvisionForLoanLeaseAndOtherLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
0us-gaap_ProvisionForLoanLeaseAndOtherLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
0us-gaap_ProvisionForLoanLeaseAndOtherLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
Reserve for unfunded lending commitments, December 31 |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
Allowance for credit losses |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
Unfunded loan commitments | Commercial | |||
Allowance for Loan and Lease Losses [Roll Forward] | |||
Other |
(11)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
(60)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
|
Reserve for unfunded lending commitments, January 1 |
484us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
513us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
714us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
Provision for unfunded lending commitments |
44us-gaap_ProvisionForLoanLeaseAndOtherLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
(18)us-gaap_ProvisionForLoanLeaseAndOtherLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
(141)us-gaap_ProvisionForLoanLeaseAndOtherLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
Reserve for unfunded lending commitments, December 31 |
528us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
484us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
513us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
Allowance for credit losses |
$ 528us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
$ 484us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
$ 513us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember |
X | ||||||||||
- Definition
Amount of other addition (reduction) in allowance reserve for credit loss. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Details
|
X | ||||||||||
- Definition
Amount of loans and leases that have been written off from both loan receivables and allowance reserve for credit loss. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount, after recoveries, of loans and leases that have been written-off. No definition available.
|
X | ||||||||||
- Definition
Amount of recovery of loans and lease receivables which had previously been fully or partially written-off as bad debts. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
A valuation allowance for financing receivables that are expected to be uncollectible. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
The valuation allowance for financing receivables acquired with deteriorated credit quality. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of allowance to cover probable credit losses on loans and leases. Includes carryover of or adjustments to the allowance for loan losses in connection with business combinations. Excludes allowance for loans and leases covered under loss sharing agreements. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of expense related to estimated loss from loan and lease transactions. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of expense related loan transactions, lease transactions, credit loss from transactions other than loan and lease transactions, and other loss based on assessment of uncollectability from the counterparty to reduce the account to their net realizable value. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|