Annual report pursuant to Section 13 and 15(d)

Fair Value Measurements - Recurring Fair Value Inputs (Details)

v2.4.1.9
Fair Value Measurements - Recurring Fair Value Inputs (Details) (USD $)
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Dec. 31, 2011
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Net derivative asset (liability) (920,000,000)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs (224,000,000)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs $ 1,468,000,000us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs $ 5,866,000,000us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs
Fair Value Inputs [Abstract]        
Loans held-for-sale, measured at fair value 6,801,000,000us-gaap_LoansHeldForSaleFairValueDisclosure 6,656,000,000us-gaap_LoansHeldForSaleFairValueDisclosure    
Other assets, measured at fair value 13,873,000,000us-gaap_OtherAssetsFairValueDisclosure 18,055,000,000us-gaap_OtherAssetsFairValueDisclosure    
Recurring        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 660,229,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
625,734,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Long-term debt (209,083,000,000)us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(209,063,000,000)us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Fair Value Inputs [Abstract]        
Loans held-for-sale, measured at fair value 6,801,000,000us-gaap_LoansHeldForSaleFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
6,656,000,000us-gaap_LoansHeldForSaleFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Other assets, measured at fair value 13,873,000,000us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
18,055,000,000us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Recurring | Level 3        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 22,262,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
31,778,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Long-term debt (10,179,000,000)us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(9,536,000,000)us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Net derivative asset (liability) (920,000,000)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(224,000,000)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Fair Value Inputs [Abstract]        
Loans held-for-sale, measured at fair value 173,000,000us-gaap_LoansHeldForSaleFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
929,000,000us-gaap_LoansHeldForSaleFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Other assets, measured at fair value 911,000,000us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,669,000,000us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Recurring | Level 3 | Loans Held-for-Sale        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 173,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= bac_LoansHeldForSaleMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
929,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= bac_LoansHeldForSaleMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Recurring | Level 3 | Loans and leases        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 2,000,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
3,100,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Recurring | Level 3 | Credit derivatives        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Net derivative asset (liability) 22,000,000us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
808,000,000us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Recurring | Level 3 | Credit derivatives | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Default rate 4.00%us-gaap_FairValueInputsProbabilityOfDefault
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
     
Loss severity 35.00%us-gaap_FairValueInputsLossSeverity
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
     
Recurring | Level 3 | Credit derivatives | Minimum | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Yield 0.00%bac_FairValueInputsYield
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
3.00%bac_FairValueInputsYield
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Prepayment speed 3.00%us-gaap_FairValueInputsPrepaymentRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
3.00%us-gaap_FairValueInputsPrepaymentRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Default rate   1.00%us-gaap_FairValueInputsProbabilityOfDefault
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Loss severity   20.00%us-gaap_FairValueInputsLossSeverity
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Upfront points 0.00%bac_FairValueInputsUpfrontPoints
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
0.00%bac_FairValueInputsUpfrontPoints
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Spread to index 0.25%bac_FairValueInputsSpreadtoIndex
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
(14.07%)bac_FairValueInputsSpreadtoIndex
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Credit correlation 24.00%bac_FairValueInputsCreditCorrelation
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
14.00%bac_FairValueInputsCreditCorrelation
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Recurring | Level 3 | Credit derivatives | Maximum | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Yield 25.00%bac_FairValueInputsYield
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
25.00%bac_FairValueInputsYield
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Prepayment speed 20.00%us-gaap_FairValueInputsPrepaymentRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
40.00%us-gaap_FairValueInputsPrepaymentRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Default rate   5.00%us-gaap_FairValueInputsProbabilityOfDefault
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Loss severity   42.00%us-gaap_FairValueInputsLossSeverity
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Upfront points 1.00%bac_FairValueInputsUpfrontPoints
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
1.00%bac_FairValueInputsUpfrontPoints
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Spread to index 4.50%bac_FairValueInputsSpreadtoIndex
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
17.41%bac_FairValueInputsSpreadtoIndex
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Credit correlation 99.00%bac_FairValueInputsCreditCorrelation
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
99.00%bac_FairValueInputsCreditCorrelation
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Recurring | Level 3 | Credit derivatives | Weighted Average | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Yield 14.00%bac_FairValueInputsYield
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
14.00%bac_FairValueInputsYield
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Prepayment speed 11.00%us-gaap_FairValueInputsPrepaymentRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
13.00%us-gaap_FairValueInputsPrepaymentRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Default rate   3.00%us-gaap_FairValueInputsProbabilityOfDefault
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Loss severity   35.00%us-gaap_FairValueInputsLossSeverity
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Upfront points 0.65%bac_FairValueInputsUpfrontPoints
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
0.63%bac_FairValueInputsUpfrontPoints
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Spread to index 1.19%bac_FairValueInputsSpreadtoIndex
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
0.91%bac_FairValueInputsSpreadtoIndex
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Credit correlation 51.00%bac_FairValueInputsCreditCorrelation
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
47.00%bac_FairValueInputsCreditCorrelation
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Recurring | Level 3 | Equity contracts        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Net derivative asset (liability) (1,560,000,000)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(1,596,000,000)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Recurring | Level 3 | Equity contracts | Minimum | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Equity correlation 20.00%bac_FairValueInputsEquityCorrelation
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
18.00%bac_FairValueInputsEquityCorrelation
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Long-dated equity volatilities 6.00%us-gaap_FairValueAssumptionsExpectedVolatilityRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
4.00%us-gaap_FairValueAssumptionsExpectedVolatilityRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Recurring | Level 3 | Equity contracts | Maximum | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Equity correlation 98.00%bac_FairValueInputsEquityCorrelation
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
98.00%bac_FairValueInputsEquityCorrelation
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Long-dated equity volatilities 69.00%us-gaap_FairValueAssumptionsExpectedVolatilityRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
63.00%us-gaap_FairValueAssumptionsExpectedVolatilityRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Recurring | Level 3 | Equity contracts | Weighted Average | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Equity correlation 65.00%bac_FairValueInputsEquityCorrelation
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
70.00%bac_FairValueInputsEquityCorrelation
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Long-dated equity volatilities 24.00%us-gaap_FairValueAssumptionsExpectedVolatilityRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
27.00%us-gaap_FairValueAssumptionsExpectedVolatilityRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Recurring | Level 3 | Commodity contracts        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Net derivative asset (liability) 141,000,000us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
6,000,000us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Recurring | Level 3 | Commodity contracts | Minimum | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Long-dated equity volatilities 16.00%us-gaap_FairValueAssumptionsExpectedVolatilityRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
9.00%us-gaap_FairValueAssumptionsExpectedVolatilityRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Natural gas forward price 2bac_FairValueInputsNaturalGasBasisCurve
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
3bac_FairValueInputsNaturalGasBasisCurve
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Correlation 82.00%bac_FairValueInputsCorrelation
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
47.00%bac_FairValueInputsCorrelation
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Recurring | Level 3 | Commodity contracts | Maximum | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Long-dated equity volatilities 98.00%us-gaap_FairValueAssumptionsExpectedVolatilityRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
109.00%us-gaap_FairValueAssumptionsExpectedVolatilityRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Natural gas forward price 7bac_FairValueInputsNaturalGasBasisCurve
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
11bac_FairValueInputsNaturalGasBasisCurve
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Correlation 93.00%bac_FairValueInputsCorrelation
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
89.00%bac_FairValueInputsCorrelation
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Recurring | Level 3 | Commodity contracts | Weighted Average | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Long-dated equity volatilities 35.00%us-gaap_FairValueAssumptionsExpectedVolatilityRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
30.00%us-gaap_FairValueAssumptionsExpectedVolatilityRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Natural gas forward price 5bac_FairValueInputsNaturalGasBasisCurve
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
6bac_FairValueInputsNaturalGasBasisCurve
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Correlation 90.00%bac_FairValueInputsCorrelation
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
81.00%bac_FairValueInputsCorrelation
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Recurring | Level 3 | Interest rate contracts        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Net derivative asset (liability) 477,000,000us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
558,000,000us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Recurring | Level 3 | Interest rate contracts | Minimum | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Correlation (IR/IR) 11.00%bac_FairValueInputsCorrelationInterestRateToInterestRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
24.00%bac_FairValueInputsCorrelationInterestRateToInterestRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Long-dated inflation volatilities 0.00%bac_FairValueInputsLongdatedInflationRateVolatilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
0.00%bac_FairValueInputsLongdatedInflationRateVolatilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Correlation (FX/IR) (48.00%)bac_FairValueInputsCorrelationOfForeignExchangeRatesToInterestRates
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
(30.00%)bac_FairValueInputsCorrelationOfForeignExchangeRatesToInterestRates
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Long-dated inflation rates 0.00%bac_FairValueInputsLongDatedInflationRates
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
0.00%bac_FairValueInputsLongDatedInflationRates
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Recurring | Level 3 | Interest rate contracts | Maximum | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Correlation (IR/IR) 99.00%bac_FairValueInputsCorrelationInterestRateToInterestRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
99.00%bac_FairValueInputsCorrelationInterestRateToInterestRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Long-dated inflation volatilities 2.00%bac_FairValueInputsLongdatedInflationRateVolatilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
2.00%bac_FairValueInputsLongdatedInflationRateVolatilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Correlation (FX/IR) 40.00%bac_FairValueInputsCorrelationOfForeignExchangeRatesToInterestRates
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
40.00%bac_FairValueInputsCorrelationOfForeignExchangeRatesToInterestRates
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Long-dated inflation rates 3.00%bac_FairValueInputsLongDatedInflationRates
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
3.00%bac_FairValueInputsLongDatedInflationRates
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Recurring | Level 3 | Interest rate contracts | Weighted Average | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Correlation (IR/IR) 55.00%bac_FairValueInputsCorrelationInterestRateToInterestRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
60.00%bac_FairValueInputsCorrelationInterestRateToInterestRate
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Long-dated inflation volatilities 1.00%bac_FairValueInputsLongdatedInflationRateVolatilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
1.00%bac_FairValueInputsLongdatedInflationRateVolatilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Correlation (FX/IR) (5.00%)bac_FairValueInputsCorrelationOfForeignExchangeRatesToInterestRates
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
(4.00%)bac_FairValueInputsCorrelationOfForeignExchangeRatesToInterestRates
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Long-dated inflation rates 1.00%bac_FairValueInputsLongDatedInflationRates
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
2.00%bac_FairValueInputsLongDatedInflationRates
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Recurring | Level 3 | Mortgage trading loans and ABS        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 2,100,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageTradingLoansAndAssetBackedSecuritiesMember
4,600,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageTradingLoansAndAssetBackedSecuritiesMember
   
Recurring | Level 3 | Corporate securities, trading loans and other        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 3,300,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
3,600,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
   
Recurring | Level 3 | Non-U.S. sovereign debt        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 574,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
468,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
   
Recurring | Level 3 | Other taxable securities, substantially all asset-backed securities        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 1,700,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
3,800,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
   
Recurring | Level 3 | Tax-exempt securities        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 599,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
806,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
   
Recurring | Level 3 | Private equity funds        
Fair Value Inputs [Abstract]        
Other assets, measured at fair value 347,000,000us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_PrivateEquityFundsMember
767,000,000us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_PrivateEquityFundsMember
   
Recurring | Level 3 | Instruments backed by residential real estate assets        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 2,030,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
3,443,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
   
Recurring | Level 3 | Instruments backed by residential real estate assets | Minimum | Income and Market Approach Technique        
Fair Value Inputs [Abstract]        
Yield 0.00%bac_FairValueInputsYield
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
2.00%bac_FairValueInputsYield
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Prepayment speed 0.00%us-gaap_FairValueInputsPrepaymentRate
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
0.00%us-gaap_FairValueInputsPrepaymentRate
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Default rate 2.00%us-gaap_FairValueInputsProbabilityOfDefault
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
1.00%us-gaap_FairValueInputsProbabilityOfDefault
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Loss severity 26.00%us-gaap_FairValueInputsLossSeverity
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
21.00%us-gaap_FairValueInputsLossSeverity
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Recurring | Level 3 | Instruments backed by residential real estate assets | Maximum | Income and Market Approach Technique        
Fair Value Inputs [Abstract]        
Yield 25.00%bac_FairValueInputsYield
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
25.00%bac_FairValueInputsYield
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Prepayment speed 35.00%us-gaap_FairValueInputsPrepaymentRate
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
35.00%us-gaap_FairValueInputsPrepaymentRate
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Default rate 15.00%us-gaap_FairValueInputsProbabilityOfDefault
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
20.00%us-gaap_FairValueInputsProbabilityOfDefault
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Loss severity 100.00%us-gaap_FairValueInputsLossSeverity
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
80.00%us-gaap_FairValueInputsLossSeverity
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Recurring | Level 3 | Instruments backed by residential real estate assets | Weighted Average | Income and Market Approach Technique        
Fair Value Inputs [Abstract]        
Yield 6.00%bac_FairValueInputsYield
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
6.00%bac_FairValueInputsYield
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Prepayment speed 14.00%us-gaap_FairValueInputsPrepaymentRate
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
9.00%us-gaap_FairValueInputsPrepaymentRate
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Default rate 7.00%us-gaap_FairValueInputsProbabilityOfDefault
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
6.00%us-gaap_FairValueInputsProbabilityOfDefault
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Loss severity 34.00%us-gaap_FairValueInputsLossSeverity
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
35.00%us-gaap_FairValueInputsLossSeverity
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Recurring | Level 3 | Instruments backed by residential real estate assets | Loans Held-for-Sale        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 173,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= bac_LoansHeldForSaleMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
929,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= bac_LoansHeldForSaleMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
   
Recurring | Level 3 | Instruments backed by residential real estate assets | Loans and leases        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 1,374,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
2,151,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
   
Recurring | Level 3 | Instruments backed by residential real estate assets | Mortgage trading loans and ABS | Trading Securities        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 483,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageTradingLoansAndAssetBackedSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
363,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageTradingLoansAndAssetBackedSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
   
Recurring | Level 3 | Commercial loans, debt securities and other        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 7,203,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
12,135,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
   
Recurring | Level 3 | Commercial loans, debt securities and other | Minimum | Income and Market Approach Technique        
Fair Value Inputs [Abstract]        
Yield 0.00%bac_FairValueInputsYield
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
0.00%bac_FairValueInputsYield
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Prepayment speed 1.00%us-gaap_FairValueInputsPrepaymentRate
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
5.00%us-gaap_FairValueInputsPrepaymentRate
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Default rate 1.00%us-gaap_FairValueInputsProbabilityOfDefault
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
1.00%us-gaap_FairValueInputsProbabilityOfDefault
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Loss severity 25.00%us-gaap_FairValueInputsLossSeverity
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
25.00%us-gaap_FairValueInputsLossSeverity
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Enterprise value/EBITDA multiple 0us-gaap_FairValueInputsEarningsBeforeInterestTaxesDepreciationAndAmortizationMultiple
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
0us-gaap_FairValueInputsEarningsBeforeInterestTaxesDepreciationAndAmortizationMultiple
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Duration 0 years 1 year    
Price 0us-gaap_FairValueInputsOfferedQuotes
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
     
Recurring | Level 3 | Commercial loans, debt securities and other | Maximum | Income and Market Approach Technique        
Fair Value Inputs [Abstract]        
Yield 40.00%bac_FairValueInputsYield
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
45.00%bac_FairValueInputsYield
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Prepayment speed 30.00%us-gaap_FairValueInputsPrepaymentRate
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
40.00%us-gaap_FairValueInputsPrepaymentRate
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Default rate 5.00%us-gaap_FairValueInputsProbabilityOfDefault
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
5.00%us-gaap_FairValueInputsProbabilityOfDefault
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Loss severity 40.00%us-gaap_FairValueInputsLossSeverity
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
42.00%us-gaap_FairValueInputsLossSeverity
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Enterprise value/EBITDA multiple 30us-gaap_FairValueInputsEarningsBeforeInterestTaxesDepreciationAndAmortizationMultiple
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
24us-gaap_FairValueInputsEarningsBeforeInterestTaxesDepreciationAndAmortizationMultiple
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Duration 5 years 5 years    
Price 107us-gaap_FairValueInputsOfferedQuotes
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
     
Recurring | Level 3 | Commercial loans, debt securities and other | Weighted Average | Income and Market Approach Technique        
Fair Value Inputs [Abstract]        
Yield 9.00%bac_FairValueInputsYield
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
5.00%bac_FairValueInputsYield
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Prepayment speed 12.00%us-gaap_FairValueInputsPrepaymentRate
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
19.00%us-gaap_FairValueInputsPrepaymentRate
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Default rate 4.00%us-gaap_FairValueInputsProbabilityOfDefault
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
4.00%us-gaap_FairValueInputsProbabilityOfDefault
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Loss severity 38.00%us-gaap_FairValueInputsLossSeverity
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
36.00%us-gaap_FairValueInputsLossSeverity
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Enterprise value/EBITDA multiple 6us-gaap_FairValueInputsEarningsBeforeInterestTaxesDepreciationAndAmortizationMultiple
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
7us-gaap_FairValueInputsEarningsBeforeInterestTaxesDepreciationAndAmortizationMultiple
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Duration 3 years 4 years    
Price 76us-gaap_FairValueInputsOfferedQuotes
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
     
Recurring | Level 3 | Commercial loans, debt securities and other | Loans and leases        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 609,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
906,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
   
Recurring | Level 3 | Commercial loans, debt securities and other | Mortgage trading loans and ABS | Trading Securities        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 1,580,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageTradingLoansAndAssetBackedSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
4,268,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageTradingLoansAndAssetBackedSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
   
Recurring | Level 3 | Commercial loans, debt securities and other | Corporate securities, trading loans and other | Trading Securities        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 3,224,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
3,462,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
   
Recurring | Level 3 | Commercial loans, debt securities and other | Non-U.S. sovereign debt | Trading Securities        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 574,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
468,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
   
Recurring | Level 3 | Commercial loans, debt securities and other | Other taxable securities, substantially all asset-backed securities | Available-for-sale Securities        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 1,216,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
3,031,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
   
Recurring | Level 3 | Auction rate securities        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 1,096,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_AuctionRateSecuritiesMember
1,719,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_AuctionRateSecuritiesMember
   
Recurring | Level 3 | Auction rate securities | Minimum | Income and Market Approach Technique        
Fair Value Inputs [Abstract]        
Projected tender price to refinancing level   60.00%bac_FairValueInputsProjectedTenderPriceToRefinancingLevel
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_AuctionRateSecuritiesMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Price 60us-gaap_FairValueInputsOfferedQuotes
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_AuctionRateSecuritiesMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
     
Recurring | Level 3 | Auction rate securities | Maximum | Income and Market Approach Technique        
Fair Value Inputs [Abstract]        
Projected tender price to refinancing level   100.00%bac_FairValueInputsProjectedTenderPriceToRefinancingLevel
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_AuctionRateSecuritiesMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Price 100us-gaap_FairValueInputsOfferedQuotes
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_AuctionRateSecuritiesMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
     
Recurring | Level 3 | Auction rate securities | Weighted Average | Income and Market Approach Technique        
Fair Value Inputs [Abstract]        
Projected tender price to refinancing level   96.00%bac_FairValueInputsProjectedTenderPriceToRefinancingLevel
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_AuctionRateSecuritiesMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
   
Price 95us-gaap_FairValueInputsOfferedQuotes
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_AuctionRateSecuritiesMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= bac_IncomeandMarketApproachTechniqueMember
     
Recurring | Level 3 | Auction rate securities | Corporate securities, trading loans and other | Trading Securities        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 46,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_AuctionRateSecuritiesMember
97,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_AuctionRateSecuritiesMember
   
Recurring | Level 3 | Auction rate securities | Other taxable securities, substantially all asset-backed securities | Available-for-sale Securities        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 451,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_AuctionRateSecuritiesMember
816,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_AuctionRateSecuritiesMember
   
Recurring | Level 3 | Auction rate securities | Tax-exempt securities | Available-for-sale Securities        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 599,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_AuctionRateSecuritiesMember
806,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_AuctionRateSecuritiesMember
   
Recurring | Level 3 | Structured liabilities | Minimum | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Equity correlation 20.00%bac_FairValueInputsEquityCorrelation
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
18.00%bac_FairValueInputsEquityCorrelation
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Long-dated equity volatilities 6.00%us-gaap_FairValueAssumptionsExpectedVolatilityRate
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
4.00%us-gaap_FairValueAssumptionsExpectedVolatilityRate
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Long-dated inflation volatilities 0.00%bac_FairValueInputsLongdatedInflationRateVolatilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
0.00%bac_FairValueInputsLongdatedInflationRateVolatilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Recurring | Level 3 | Structured liabilities | Maximum | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Equity correlation 98.00%bac_FairValueInputsEquityCorrelation
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
98.00%bac_FairValueInputsEquityCorrelation
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Long-dated equity volatilities 69.00%us-gaap_FairValueAssumptionsExpectedVolatilityRate
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
63.00%us-gaap_FairValueAssumptionsExpectedVolatilityRate
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Long-dated inflation volatilities 2.00%bac_FairValueInputsLongdatedInflationRateVolatilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
2.00%bac_FairValueInputsLongdatedInflationRateVolatilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Recurring | Level 3 | Structured liabilities | Weighted Average | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Equity correlation 65.00%bac_FairValueInputsEquityCorrelation
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
     
Long-dated equity volatilities 24.00%us-gaap_FairValueAssumptionsExpectedVolatilityRate
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
     
Long-dated inflation volatilities 1.00%bac_FairValueInputsLongdatedInflationRateVolatilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
     
Recurring | Level 3 | Structured liabilities | Long-term debt        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Long-term debt (2,362,000,000)us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByLiabilityClassAxis
= us-gaap_LongTermDebtMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
(1,990,000,000)us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByLiabilityClassAxis
= us-gaap_LongTermDebtMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
   
Recurring | Level 3 | Structured liabilities | Long-term debt | Weighted Average | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Equity correlation   70.00%bac_FairValueInputsEquityCorrelation
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByLiabilityClassAxis
= us-gaap_LongTermDebtMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Long-dated equity volatilities   27.00%us-gaap_FairValueAssumptionsExpectedVolatilityRate
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByLiabilityClassAxis
= us-gaap_LongTermDebtMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember
   
Long-dated inflation volatilities   1.00%bac_FairValueInputsLongdatedInflationRateVolatilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByLiabilityClassAxis
= us-gaap_LongTermDebtMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
/ us-gaap_RangeAxis
= us-gaap_WeightedAverageMember
/ us-gaap_ValuationTechniqueAxis
= us-gaap_IncomeApproachValuationTechniqueMember