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
|
|
|