Allowance for Credit Losses - Allowance by Portfolio Segment (Details) (USD $)
|
3 Months Ended |
|
Mar. 31, 2015
|
Mar. 31, 2014
|
Dec. 31, 2014
|
Allowance for Loan and Lease Losses [Roll Forward] |
|
|
|
Allowance for Loan and Lease Losses, beginning balance |
$ 14,419,000,000us-gaap_LoansAndLeasesReceivableAllowance
|
$ 17,428,000,000us-gaap_LoansAndLeasesReceivableAllowance
|
|
Loans and leases charged off |
(1,645,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
|
(1,868,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
|
|
Recoveries of loans and leases previously charged off |
451,000,000us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts
|
480,000,000us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts
|
|
Net charge-offs |
(1,194,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
|
(1,388,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
|
|
Provision for loan and lease losses |
756,000,000us-gaap_ProvisionForLoanAndLeaseLosses
|
984,000,000us-gaap_ProvisionForLoanAndLeaseLosses
|
|
Other |
(17,000,000)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
|
(15,000,000)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
|
|
Allowance for Loan and Lease Losses, ending balance |
13,676,000,000us-gaap_LoansAndLeasesReceivableAllowance
|
16,618,000,000us-gaap_LoansAndLeasesReceivableAllowance
|
|
Provision for unfunded lending commitments |
765,000,000us-gaap_ProvisionForLoanLeaseAndOtherLosses
|
1,009,000,000us-gaap_ProvisionForLoanLeaseAndOtherLosses
|
|
Reserve for unfunded lending commitments, ending balance |
14,213,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses
|
17,127,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses
|
|
Allowance for credit losses |
14,213,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses
|
17,127,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses
|
|
Consumer Real Estate |
|
|
|
Allowance for Loan and Lease Losses [Roll Forward] |
|
|
|
Allowance for Loan and Lease Losses, beginning balance |
5,935,000,000us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
8,518,000,000us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
|
Loans and leases charged off |
(552,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
(596,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
|
Recoveries of loans and leases previously charged off |
183,000,000us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
167,000,000us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
|
Net charge-offs |
(369,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
(429,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
|
Provision for loan and lease losses |
(28,000,000)us-gaap_ProvisionForLoanAndLeaseLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
(141,000,000)us-gaap_ProvisionForLoanAndLeaseLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
|
Other |
0us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
(1,000,000)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
|
Allowance for Loan and Lease Losses, ending balance |
5,250,000,000us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
7,556,000,000us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
|
Reserve for unfunded lending commitments, ending balance |
5,250,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
7,556,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
|
Allowance for credit losses |
5,250,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
7,556,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
|
Valuation allowance |
1,314,000,000us-gaap_FinancingReceivableAllowanceForCreditLossesAcquiredWithDeterioratedCreditQuality / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
|
1,652,000,000us-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, beginning balance |
4,047,000,000us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember
|
4,905,000,000us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember
|
|
Loans and leases charged off |
(964,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember
|
(1,128,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember
|
|
Recoveries of loans and leases previously charged off |
216,000,000us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember
|
218,000,000us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember
|
|
Net charge-offs |
(748,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember
|
(910,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember
|
|
Provision for loan and lease losses |
647,000,000us-gaap_ProvisionForLoanAndLeaseLosses / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember
|
791,000,000us-gaap_ProvisionForLoanAndLeaseLosses / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember
|
|
Other |
(17,000,000)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember
|
(11,000,000)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember
|
|
Allowance for Loan and Lease Losses, ending balance |
3,929,000,000us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember
|
4,775,000,000us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember
|
|
Reserve for unfunded lending commitments, ending balance |
3,929,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember
|
4,775,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember
|
|
Allowance for credit losses |
3,929,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember
|
4,775,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember
|
|
Commercial |
|
|
|
Allowance for Loan and Lease Losses [Roll Forward] |
|
|
|
Allowance for Loan and Lease Losses, beginning balance |
4,437,000,000us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
4,005,000,000us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
|
Loans and leases charged off |
(129,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
(144,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
|
Recoveries of loans and leases previously charged off |
52,000,000us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
95,000,000us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
|
Net charge-offs |
(77,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
(49,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
|
Provision for loan and lease losses |
137,000,000us-gaap_ProvisionForLoanAndLeaseLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
334,000,000us-gaap_ProvisionForLoanAndLeaseLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
|
Other |
0us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
(3,000,000)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
|
Allowance for Loan and Lease Losses, ending balance |
4,497,000,000us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
4,287,000,000us-gaap_LoansAndLeasesReceivableAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
|
Reserve for unfunded lending commitments, ending balance |
5,034,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
4,796,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
|
Allowance for credit losses |
5,034,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
4,796,000,000us-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 |
(288,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember
|
(391,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember
|
|
Provision for loan and lease losses |
(50,000,000)us-gaap_ProvisionForLoanAndLeaseLosses / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember
|
0us-gaap_ProvisionForLoanAndLeaseLosses / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember
|
|
Financing receivable allowance sold |
110,000,000us-gaap_AllowanceForLoanAndLeaseLossesLoansSold / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember
|
158,000,000us-gaap_AllowanceForLoanAndLeaseLossesLoansSold / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember
|
|
Valuation allowance |
1,314,000,000us-gaap_FinancingReceivableAllowanceForCreditLossesAcquiredWithDeterioratedCreditQuality / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember
|
|
1,652,000,000us-gaap_FinancingReceivableAllowanceForCreditLossesAcquiredWithDeterioratedCreditQuality / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember
|
Receivables Acquired with Deteriorated Credit Quality | Consumer Real Estate |
|
|
|
Allowance for Loan and Lease Losses [Roll Forward] |
|
|
|
Loans and leases charged off |
(288,000,000)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember
|
(391,000,000)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 = bac_CreditCardandOtherConsumerPortfolioSegmentMember / bac_ReceivablesAcquiredwithDeterioratedCreditQualityAxis = bac_ReceivablesAcquiredwithDeterioratedCreditQualityMember
|
0us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / 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
|
|
Unfunded loan commitments |
|
|
|
Allowance for Loan and Lease Losses [Roll Forward] |
|
|
|
Reserve for unfunded lending commitments, beginning balance |
528,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
484,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
|
Provision for unfunded lending commitments |
9,000,000us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
25,000,000us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
|
Reserve for unfunded lending commitments, ending balance |
537,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
509,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
|
Allowance for credit losses |
537,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
509,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
|
Unfunded loan commitments | Consumer Real Estate |
|
|
|
Allowance for Loan and Lease Losses [Roll Forward] |
|
|
|
Reserve for unfunded lending commitments, beginning balance |
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
|
|
Reserve for unfunded lending commitments, ending balance |
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
|
|
Unfunded loan commitments | Credit card and other consumer |
|
|
|
Allowance for Loan and Lease Losses [Roll Forward] |
|
|
|
Reserve for unfunded lending commitments, beginning balance |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
|
Provision for unfunded lending commitments |
0us-gaap_ProvisionForLoanLeaseAndOtherLosses / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
0us-gaap_ProvisionForLoanLeaseAndOtherLosses / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
|
Reserve for unfunded lending commitments, ending balance |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
|
Allowance for credit losses |
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
0us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
|
Unfunded loan commitments | Commercial |
|
|
|
Allowance for Loan and Lease Losses [Roll Forward] |
|
|
|
Reserve for unfunded lending commitments, beginning balance |
528,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
484,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
|
Provision for unfunded lending commitments |
9,000,000us-gaap_ProvisionForLoanLeaseAndOtherLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
25,000,000us-gaap_ProvisionForLoanLeaseAndOtherLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
|
Reserve for unfunded lending commitments, ending balance |
537,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
509,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
|
Allowance for credit losses |
$ 537,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
$ 509,000,000us-gaap_FinancingReceivableAllowanceForCreditLosses / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_UnfundedLoanCommitmentMember
|
|