Quarterly report pursuant to Section 13 or 15(d)

Fair Value Measurements - Recurring Fair Value Inputs (Details)

v2.4.1.9
Fair Value Measurements - Recurring Fair Value Inputs (Details) (USD $)
3 Months Ended 12 Months Ended
Mar. 31, 2015
Dec. 31, 2014
Mar. 31, 2014
Dec. 31, 2013
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Long-term debt (32,875,000,000)us-gaap_LongTermDebtFairValue (36,404,000,000)us-gaap_LongTermDebtFairValue    
Net derivative asset (1,081,000,000)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs (920,000,000)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs (839,000,000)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs (224,000,000)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs
Fair Value Inputs [Abstract]        
Other assets, measured at fair value 14,114,000,000us-gaap_OtherAssetsFairValueDisclosure 13,873,000,000us-gaap_OtherAssetsFairValueDisclosure    
Recurring        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 666,480,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
660,229,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Long-term debt (32,875,000,000)us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(36,404,000,000)us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Fair Value Inputs [Abstract]        
Other assets, measured at fair value 14,114,000,000us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
13,873,000,000us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Recurring | Level 3        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 21,586,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
22,262,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Long-term debt (2,806,000,000)us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(2,362,000,000)us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Net derivative asset (1,081,000,000)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(920,000,000)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Fair Value Inputs [Abstract]        
Other assets, measured at fair value 847,000,000us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
911,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 543,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= bac_LoansHeldForSaleMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
173,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
1,983,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 (85,000,000)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
22,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
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
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
   
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
   
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
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
   
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
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
   
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
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
   
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_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
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
   
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
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
   
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.66%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.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
   
Spread to index 1.18%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
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
   
Credit correlation 49.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
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
   
Recurring | Level 3 | Equity contracts        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Net derivative asset (1,773,000,000)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(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
   
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
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
   
Long-dated equity volatilities 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
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
   
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 85.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
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
   
Recurring | Level 3 | Equity contracts | Weighted Average | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Equity correlation 66.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
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
   
Long-dated equity volatilities 25.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
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
   
Recurring | Level 3 | Commodity contracts        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Net derivative asset 136,000,000us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
141,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 17.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
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
   
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
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
   
Correlation 66.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
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
   
Recurring | Level 3 | Commodity contracts | Maximum | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Long-dated equity volatilities 131.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
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
   
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
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
   
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
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
   
Recurring | Level 3 | Commodity contracts | Weighted Average | Income Approach Valuation Technique        
Fair Value Inputs [Abstract]        
Long-dated equity volatilities 38.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
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
   
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
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
   
Correlation 87.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
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
   
Recurring | Level 3 | Interest rate contracts        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Net derivative asset 641,000,000us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
477,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) 21.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
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
   
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) (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
(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
   
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) 50.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
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
   
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) (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
(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
   
Long-dated inflation rates 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
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
   
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
2,100,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 2,800,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
3,300,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 508,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
574,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 690,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
1,700,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 583,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
599,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
   
Recurring | Level 3 | Instruments backed by residential real estate assets        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 2,386,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_InstrumentsBackedByResidentialRealEstateAssetsMember
2,030,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
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
   
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 0.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
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
   
Loss severity 24.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
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
   
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 39.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 14.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
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
   
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
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
   
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 16.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
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
   
Default rate 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
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
   
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
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
   
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 543,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
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
   
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,441,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
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
   
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 402,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
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
   
Recurring | Level 3 | Commercial loans, debt securities and other        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 5,902,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= bac_CommercialLoansDebtSecuritiesandOtherMember
7,203,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 0.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
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
   
Default rate 0.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
   
Duration 0 years 0 years    
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
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
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
   
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
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
   
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 50.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
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
   
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
   
Duration 5 years 5 years    
Price 135us-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
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 10.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
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
   
Prepayment speed 15.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
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
   
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
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
   
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
   
Duration 4 years 3 years    
Price 69us-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
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 513,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
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
   
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,704,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
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
   
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 2,691,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,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
   
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 508,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
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
   
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 486,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
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
   
Recurring | Level 3 | Auction rate securities        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 856,000,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_AuctionRateSecuritiesMember
1,096,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]        
Price 54us-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
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]        
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
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]        
Price 94us-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
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 69,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
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
   
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 204,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
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
   
Recurring | Level 3 | Auction rate securities | Tax-exempt securities | Available-for-sale Securities        
Fair Value Inputs, Assets, Quantitative Information [Line Items]        
Assets, fair value 583,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
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
   
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
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
   
Long-dated equity volatilities 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
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
   
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 85.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
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
   
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 66.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 25.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,806,000,000)us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByLiabilityClassAxis
= us-gaap_LongTermDebtMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_ProductOrServiceAxis
= us-gaap_StructuredFinanceMember
(2,362,000,000)us-gaap_LongTermDebtFairValue
/ 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   65.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   24.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