Outstanding Loans and Leases - Past Due (Details) (USD $)
|
Mar. 31, 2015
|
Dec. 31, 2014
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
30-59 Days Past Due |
$ 5,423,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
|
$ 5,918,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
|
60-89 Days Past Due |
2,525,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
|
2,749,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
|
90 Days or More Past Due |
17,061,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
|
19,754,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
|
Total Past Due 30 Days or More |
25,009,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue
|
28,421,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue
|
Total Current or Less Than 30 Days Past Due |
824,942,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue
|
823,520,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue
|
Carrying value gross of valuation allowance |
19,539,000,000us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
|
20,769,000,000us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
|
Loans and leases, measured at fair value |
8,466,000,000us-gaap_LoansReceivableFairValueDisclosure
|
8,681,000,000us-gaap_LoansReceivableFairValueDisclosure
|
Total Outstandings |
877,956,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
|
881,391,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
|
Percentage outstanding, 30-59 days past due |
0.62%bac_FinancingReceivableRecordedInvestment30to59DaysPastDuePercentageofTotalOutstanding
|
0.67%bac_FinancingReceivableRecordedInvestment30to59DaysPastDuePercentageofTotalOutstanding
|
Percentage outstanding, 60-90 days past due |
0.29%bac_FinancingReceivableRecordedInvestment60to90DaysPastDuePercentageofTotalOutstanding
|
0.31%bac_FinancingReceivableRecordedInvestment60to90DaysPastDuePercentageofTotalOutstanding
|
Percentage outstanding, Equal to Greater than 90 days past due |
1.94%bac_FinancingReceivableRecordedInvestmentEqualtoGreaterthan90DaysPastDuePercentageofTotalOutstanding
|
2.24%bac_FinancingReceivableRecordedInvestmentEqualtoGreaterthan90DaysPastDuePercentageofTotalOutstanding
|
Percentage outstanding, 30 days or more past due |
2.85%bac_FinancingReceivableRecordedInvestment30DaysorMorePastDuePercentageofTotalOutstanding
|
3.22%bac_FinancingReceivableRecordedInvestment30DaysorMorePastDuePercentageofTotalOutstanding
|
Percentage outstanding, current or less than 30 days past due |
93.96%bac_FinancingReceivableRecordedInvestmentCurrentand1to29DaysPastDuePercentageofTotalOutstanding
|
93.44%bac_FinancingReceivableRecordedInvestmentCurrentand1to29DaysPastDuePercentageofTotalOutstanding
|
Percentage outstanding, purchase credit-impaired |
2.23%bac_FinancingReceivableAcquiredwithDeterioratedCreditQualityPercentageofTotalOutstanding
|
2.36%bac_FinancingReceivableAcquiredwithDeterioratedCreditQualityPercentageofTotalOutstanding
|
Percentage outstanding, loans accounted for under the fair value option |
0.96%bac_LoansReceivableFairValueDisclosurePercentageofTotalOutstanding
|
0.98%bac_LoansReceivableFairValueDisclosurePercentageofTotalOutstanding
|
Percentage outstanding, total outstanding |
100.00%bac_LoansandLeasesReceivableNetofDeferredIncomePercentageofTotalOutstanding
|
100.00%bac_LoansandLeasesReceivableNetofDeferredIncomePercentageofTotalOutstanding
|
Federal National Mortgage Association Certificates and Obligations (FNMA) and Federal Home Loan Mortgage Corporation Certificates and Obligations (FHLMC) | Residential Mortgage |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Unpaid principal balance of loans covered by protection agreement |
12,300,000,000bac_LongTermCreditProtectionAgreementsAmountCovered / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember / us-gaap_InvestmentTypeAxis = bac_FederalNationalMortgageAssociationCertificatesandObligationsFNMAandFederalHomeLoanMortgageCorporationCertificatesandObligationsFHLMCMember
|
17,200,000,000bac_LongTermCreditProtectionAgreementsAmountCovered / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember / us-gaap_InvestmentTypeAxis = bac_FederalNationalMortgageAssociationCertificatesandObligationsFNMAandFederalHomeLoanMortgageCorporationCertificatesandObligationsFHLMCMember
|
Other Loans | Direct/Indirect Consumer |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
743,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember / us-gaap_ProductOrServiceAxis = bac_OtherLoansMember
|
|
Nonperforming Financing Receivable | Direct/Indirect Consumer |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Current or Less Than 30 Days Past Due |
27,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
27,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
Consumer Portfolio Segment |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
30-59 Days Past Due |
4,784,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
5,246,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
60-89 Days Past Due |
2,314,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
2,492,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
90 Days or More Past Due |
16,557,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
19,012,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
Total Past Due 30 Days or More |
23,655,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
26,750,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
Total Current or Less Than 30 Days Past Due |
429,233,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
438,974,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
Carrying value gross of valuation allowance |
19,539,000,000us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
20,769,000,000us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
Loans and leases, measured at fair value |
2,055,000,000us-gaap_LoansReceivableFairValueDisclosure / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
2,077,000,000us-gaap_LoansReceivableFairValueDisclosure / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
Total Outstandings |
474,482,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
488,570,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
Consumer Portfolio Segment | Residential Mortgage |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Loans and leases, measured at fair value |
1,900,000,000us-gaap_LoansReceivableFairValueDisclosure / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
|
1,900,000,000us-gaap_LoansReceivableFairValueDisclosure / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
|
Consumer Portfolio Segment | Home equity |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Loans and leases, measured at fair value |
205,000,000us-gaap_LoansReceivableFairValueDisclosure / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
|
196,000,000us-gaap_LoansReceivableFairValueDisclosure / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
|
Consumer Portfolio Segment | Carrying Value |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
472,427,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
486,493,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
Consumer Portfolio Segment | Estimate of Fair Value Measurement |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
2,055,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_EstimateOfFairValueFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
2,077,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_EstimateOfFairValueFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
Consumer Real Estate |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Carrying value gross of valuation allowance |
19,539,000,000us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
20,769,000,000us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
Loans and leases, measured at fair value |
2,100,000,000us-gaap_LoansReceivableFairValueDisclosure / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
2,100,000,000us-gaap_LoansReceivableFairValueDisclosure / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember
|
Consumer Real Estate | Core Portfolio, Residential Financing Receivable |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
30-59 Days Past Due |
1,727,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
1,847,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
60-89 Days Past Due |
695,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
700,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
90 Days or More Past Due |
5,000,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
5,561,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
Total Past Due 30 Days or More |
7,422,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
8,108,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
Total Current or Less Than 30 Days Past Due |
149,466,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
154,112,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
Total Outstandings |
156,888,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
162,220,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
Consumer Real Estate | Core Portfolio, Home Equity Financing Receivable |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
30-59 Days Past Due |
225,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
218,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
60-89 Days Past Due |
119,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
105,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
90 Days or More Past Due |
754,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
744,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
Total Past Due 30 Days or More |
1,098,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
1,067,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
Total Current or Less Than 30 Days Past Due |
49,931,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
50,820,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
Total Outstandings |
51,029,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
51,887,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
Consumer Real Estate | Legacy Assets and Servicing Portfolio, Residential Financing Receivable |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
30-59 Days Past Due |
1,764,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
2,008,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
60-89 Days Past Due |
919,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
1,060,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
90 Days or More Past Due |
8,697,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
10,513,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
Total Past Due 30 Days or More |
11,380,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
13,581,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
Total Current or Less Than 30 Days Past Due |
25,472,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
25,244,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
Carrying value gross of valuation allowance |
14,185,000,000us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
15,152,000,000us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
Total Outstandings |
36,852,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
38,825,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
Consumer Real Estate | Legacy Assets and Servicing Portfolio, Home Equity Financing Receivable |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
30-59 Days Past Due |
346,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
374,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
60-89 Days Past Due |
174,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
174,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
90 Days or More Past Due |
1,169,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
1,166,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
Total Past Due 30 Days or More |
1,689,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
1,714,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
Total Current or Less Than 30 Days Past Due |
25,499,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
26,507,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
Carrying value gross of valuation allowance |
5,354,000,000us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
5,617,000,000us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
Total Outstandings |
27,188,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
28,221,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
Consumer Real Estate | Pay option | Legacy Assets and Servicing Portfolio, Residential Financing Receivable |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
2,900,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember / us-gaap_ProductOrServiceAxis = bac_PayOptionMember
|
3,200,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember / us-gaap_ProductOrServiceAxis = bac_PayOptionMember
|
Consumer Real Estate | Fully Insured Loans |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
30-59 Days Past Due |
1,800,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_InternalCreditAssessmentAxis = bac_FullyInsuredLoansMember
|
2,100,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_InternalCreditAssessmentAxis = bac_FullyInsuredLoansMember
|
60-89 Days Past Due |
1,000,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_InternalCreditAssessmentAxis = bac_FullyInsuredLoansMember
|
1,100,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_InternalCreditAssessmentAxis = bac_FullyInsuredLoansMember
|
90 Days or More Past Due |
9,900,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_InternalCreditAssessmentAxis = bac_FullyInsuredLoansMember
|
11,400,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_InternalCreditAssessmentAxis = bac_FullyInsuredLoansMember
|
Consumer Real Estate | Fully Insured Loans | Core Portfolio, Residential Financing Receivable |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
46,464,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember / us-gaap_InternalCreditAssessmentAxis = bac_FullyInsuredLoansMember
|
52,990,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember / us-gaap_InternalCreditAssessmentAxis = bac_FullyInsuredLoansMember
|
Consumer Real Estate | Fully Insured Loans | Core Portfolio, Home Equity Financing Receivable |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember / us-gaap_InternalCreditAssessmentAxis = bac_FullyInsuredLoansMember
|
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember / us-gaap_InternalCreditAssessmentAxis = bac_FullyInsuredLoansMember
|
Consumer Real Estate | Fully Insured Loans | Legacy Assets and Servicing Portfolio, Residential Financing Receivable |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
11,047,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember / us-gaap_InternalCreditAssessmentAxis = bac_FullyInsuredLoansMember
|
11,980,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember / us-gaap_InternalCreditAssessmentAxis = bac_FullyInsuredLoansMember
|
Consumer Real Estate | Fully Insured Loans | Legacy Assets and Servicing Portfolio, Home Equity Financing Receivable |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember / us-gaap_InternalCreditAssessmentAxis = bac_FullyInsuredLoansMember
|
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember / us-gaap_InternalCreditAssessmentAxis = bac_FullyInsuredLoansMember
|
Consumer Real Estate | Nonperforming Financing Receivable |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
30-59 Days Past Due |
392,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
392,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
60-89 Days Past Due |
370,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
332,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
Total Current or Less Than 30 Days Past Due |
3,800,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
3,600,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
Consumer Real Estate | Carrying Value | Core Portfolio, Residential Financing Receivable |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
156,888,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
162,220,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
Consumer Real Estate | Carrying Value | Core Portfolio, Home Equity Financing Receivable |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
51,029,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
51,887,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
Consumer Real Estate | Carrying Value | Legacy Assets and Servicing Portfolio, Residential Financing Receivable |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
51,037,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
53,977,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
Consumer Real Estate | Carrying Value | Legacy Assets and Servicing Portfolio, Home Equity Financing Receivable |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
32,542,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
33,838,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
Credit card and other consumer | Credit Card Receivable | United States |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
30-59 Days Past Due |
468,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
494,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
60-89 Days Past Due |
318,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
341,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
90 Days or More Past Due |
795,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
866,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
Total Past Due 30 Days or More |
1,581,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
1,701,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
Total Current or Less Than 30 Days Past Due |
85,707,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
90,178,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
Total Outstandings |
87,288,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
91,879,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
Credit card and other consumer | Credit Card Receivable | Non United States |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
30-59 Days Past Due |
46,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
49,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
60-89 Days Past Due |
34,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
39,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
90 Days or More Past Due |
88,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
95,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Total Past Due 30 Days or More |
168,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
183,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Total Current or Less Than 30 Days Past Due |
9,492,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
10,282,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Total Outstandings |
9,660,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
10,465,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Percentage outstanding, Equal to Greater than 90 days past due |
1.00%bac_FinancingReceivableRecordedInvestmentEqualtoGreaterthan90DaysPastDuePercentageofTotalOutstanding / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
1.00%bac_FinancingReceivableRecordedInvestmentEqualtoGreaterthan90DaysPastDuePercentageofTotalOutstanding / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Percentage outstanding, current or less than 30 days past due |
98.00%bac_FinancingReceivableRecordedInvestmentCurrentand1to29DaysPastDuePercentageofTotalOutstanding / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
98.00%bac_FinancingReceivableRecordedInvestmentCurrentand1to29DaysPastDuePercentageofTotalOutstanding / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Credit card and other consumer | Direct/Indirect Consumer |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
30-59 Days Past Due |
198,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
245,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
60-89 Days Past Due |
53,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
71,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
90 Days or More Past Due |
53,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
65,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
Total Past Due 30 Days or More |
304,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
381,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
Total Current or Less Than 30 Days Past Due |
81,837,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
80,000,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
Total Outstandings |
82,141,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
80,381,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
Credit card and other consumer | Other consumer |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
30-59 Days Past Due |
10,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
11,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
60-89 Days Past Due |
2,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
2,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
90 Days or More Past Due |
1,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
2,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
Total Past Due 30 Days or More |
13,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
15,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
Total Current or Less Than 30 Days Past Due |
1,829,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
1,831,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
Total Outstandings |
1,842,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
1,846,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
Credit card and other consumer | Dealer Financial Services Loans | Direct/Indirect Consumer |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
38,900,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember / us-gaap_ProductOrServiceAxis = bac_DealerFinancialServicesLoansMember
|
37,700,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember / us-gaap_ProductOrServiceAxis = bac_DealerFinancialServicesLoansMember
|
Credit card and other consumer | Unsecured Consumed Lending Loans | Direct/Indirect Consumer |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
1,300,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember / us-gaap_ProductOrServiceAxis = bac_UnsecuredConsumedLendingLoansMember
|
1,500,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember / us-gaap_ProductOrServiceAxis = bac_UnsecuredConsumedLendingLoansMember
|
Credit card and other consumer | Securities Based Lending Loans | Direct/Indirect Consumer | United States |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
36,600,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember / us-gaap_ProductOrServiceAxis = bac_SecuritiesBasedLendingLoansMember / us-gaap_StatementGeographicalAxis = country_US
|
35,800,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember / us-gaap_ProductOrServiceAxis = bac_SecuritiesBasedLendingLoansMember / us-gaap_StatementGeographicalAxis = country_US
|
Credit card and other consumer | Securities Based Lending Loans | Direct/Indirect Consumer | Non United States |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
4,000,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember / us-gaap_ProductOrServiceAxis = bac_SecuritiesBasedLendingLoansMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
4,000,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember / us-gaap_ProductOrServiceAxis = bac_SecuritiesBasedLendingLoansMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Credit card and other consumer | Student Loans | Direct/Indirect Consumer |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
611,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember / us-gaap_ProductOrServiceAxis = bac_StudentLoansMember
|
632,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember / us-gaap_ProductOrServiceAxis = bac_StudentLoansMember
|
Credit card and other consumer | Other Loans | Direct/Indirect Consumer |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
|
761,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember / us-gaap_ProductOrServiceAxis = bac_OtherLoansMember
|
Credit card and other consumer | Consumer Finance Loans | Other consumer |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
646,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember / us-gaap_ProductOrServiceAxis = bac_ConsumerFinanceLoansMember
|
676,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember / us-gaap_ProductOrServiceAxis = bac_ConsumerFinanceLoansMember
|
Credit card and other consumer | Consumer Leases | Other consumer |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
1,100,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember / us-gaap_ProductOrServiceAxis = bac_ConsumerLeasesMember
|
1,000,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember / us-gaap_ProductOrServiceAxis = bac_ConsumerLeasesMember
|
Credit card and other consumer | Consumer Overdrafts | Other consumer |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
120,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember / us-gaap_ProductOrServiceAxis = bac_ConsumerOverdraftsMember
|
162,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember / us-gaap_ProductOrServiceAxis = bac_ConsumerOverdraftsMember
|
Credit card and other consumer | Carrying Value | Credit Card Receivable | United States |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
87,288,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
91,879,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
Credit card and other consumer | Carrying Value | Credit Card Receivable | Non United States |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
9,660,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
10,465,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Credit card and other consumer | Carrying Value | Direct/Indirect Consumer |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
82,141,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
80,381,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
Credit card and other consumer | Carrying Value | Other consumer |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
1,842,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
1,846,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
Commercial |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
30-59 Days Past Due |
639,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
672,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
60-89 Days Past Due |
211,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
257,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
90 Days or More Past Due |
504,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
742,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
Total Past Due 30 Days or More |
1,354,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
1,671,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
Total Current or Less Than 30 Days Past Due |
395,709,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
384,546,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
Loans and leases, measured at fair value |
6,411,000,000us-gaap_LoansReceivableFairValueDisclosure / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
6,604,000,000us-gaap_LoansReceivableFairValueDisclosure / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
Total Outstandings |
403,474,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
392,821,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
Commercial | United States |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
30-59 Days Past Due |
272,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
320,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
60-89 Days Past Due |
132,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
151,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
90 Days or More Past Due |
269,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
318,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
Total Past Due 30 Days or More |
673,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
789,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
Total Current or Less Than 30 Days Past Due |
224,408,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
219,504,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
Loans and leases, measured at fair value |
2,000,000,000us-gaap_LoansReceivableFairValueDisclosure / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
1,900,000,000us-gaap_LoansReceivableFairValueDisclosure / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
Total Outstandings |
225,081,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
220,293,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
Commercial | Non United States |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
30-59 Days Past Due |
3,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
5,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
60-89 Days Past Due |
3,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
4,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Total Past Due 30 Days or More |
6,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
9,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Total Current or Less Than 30 Days Past Due |
84,836,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
80,074,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Loans and leases, measured at fair value |
4,500,000,000us-gaap_LoansReceivableFairValueDisclosure / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
4,700,000,000us-gaap_LoansReceivableFairValueDisclosure / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Total Outstandings |
84,842,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
80,083,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Commercial | Commercial Real Estate |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
30-59 Days Past Due |
42,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
138,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
60-89 Days Past Due |
1,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
16,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
90 Days or More Past Due |
137,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
288,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
Total Past Due 30 Days or More |
180,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
442,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
Total Current or Less Than 30 Days Past Due |
49,266,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
47,240,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
Total Outstandings |
49,446,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
47,682,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
Commercial | Commercial Real Estate | United States |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
46,700,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember / us-gaap_StatementGeographicalAxis = country_US
|
45,200,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember / us-gaap_StatementGeographicalAxis = country_US
|
Commercial | Commercial Real Estate | Non United States |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
2,800,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
2,500,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Commercial | Commercial Lease Financing |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
30-59 Days Past Due |
240,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
121,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
60-89 Days Past Due |
37,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
41,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
90 Days or More Past Due |
14,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
42,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
Total Past Due 30 Days or More |
291,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
204,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
Total Current or Less Than 30 Days Past Due |
24,177,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
24,662,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
Total Outstandings |
24,468,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
24,866,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
Commercial | Small Business Commercial |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
30-59 Days Past Due |
82,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
88,000,000us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
60-89 Days Past Due |
38,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
45,000,000us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
90 Days or More Past Due |
84,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
94,000,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
Total Past Due 30 Days or More |
204,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
227,000,000bac_FinancingReceivableRecordedInvestment30DaysorMorePastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
Total Current or Less Than 30 Days Past Due |
13,022,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
13,066,000,000bac_FinancingReceivableRecordedInvestmentCurrentand1To29DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
Commercial | Small Business Commercial | United States |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
13,226,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember / us-gaap_StatementGeographicalAxis = country_US
|
13,293,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember / us-gaap_StatementGeographicalAxis = country_US
|
Commercial | Carrying Value |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
397,063,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
386,217,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
Commercial | Carrying Value | United States |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
225,081,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
220,293,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
Commercial | Carrying Value | Non United States |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
84,842,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
80,083,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Commercial | Carrying Value | Commercial Real Estate |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
49,446,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
47,682,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
Commercial | Carrying Value | Commercial Lease Financing |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
24,468,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
24,866,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
Commercial | Carrying Value | Small Business Commercial |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
13,226,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
13,293,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_CarryingReportedAmountFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
Commercial | Estimate of Fair Value Measurement |
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
Total Outstandings |
$ 6,411,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_EstimateOfFairValueFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
$ 6,604,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FairValueByMeasurementBasisAxis = us-gaap_EstimateOfFairValueFairValueDisclosureMember / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|