Annual report pursuant to Section 13 and 15(d)

Derivatives - Credit Derivatives (Details)

v2.4.1.9
Derivatives - Credit Derivatives (Details) (USD $)
In Millions, unless otherwise specified
Dec. 31, 2014
Dec. 31, 2013
Carrying Value of Derivatives [Abstract]    
Total $ 981,800us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement $ 906,400us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
Carrying Value of Credit-Related Notes [Abstract]    
Less than One Year 7bac_CreditDerivativeMaximumExposureLessThanOneYear 145bac_CreditDerivativeMaximumExposureLessThanOneYear
One to Three Years 506bac_CreditDerivativeMaximumExposureOnetoThreeYears 385bac_CreditDerivativeMaximumExposureOnetoThreeYears
Three to Five Years 653bac_CreditDerivativeMaximumExposureThreeToFiveYears 1,351bac_CreditDerivativeMaximumExposureThreeToFiveYears
Over Five Years 4,077bac_CreditDerivativeMaximumExposureGreaterThanFiveYears 5,403bac_CreditDerivativeMaximumExposureGreaterThanFiveYears
Total 5,243us-gaap_CreditDerivativeMaximumExposureUndiscounted 7,284us-gaap_CreditDerivativeMaximumExposureUndiscounted
Notional Amount of Derivatives, [Abstract]    
Less than One Year 233,784bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear 273,635bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
One to Three Years 524,286bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears 478,409bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
Three to Five Years 326,007bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears 510,848bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
Over Five Years 50,055bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears 65,895bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
Total 1,134,132invest_DerivativeNotionalAmount 1,328,787invest_DerivativeNotionalAmount
Credit derivatives    
Carrying Value of Derivatives [Abstract]    
Less than One Year 1,104bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
477bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
One to Three Years 3,068bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
2,182bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Three to Five Years 2,795bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
3,445bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Over Five Years 5,240bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationGreaterThanFiveYears
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
7,887bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationGreaterThanFiveYears
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Total 12,207us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
13,991us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Swaps | Credit derivatives | Written credit derivatives    
Carrying Value of Derivatives [Abstract]    
Less than One Year 1,016bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
426bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
One to Three Years 2,821bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
2,144bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Three to Five Years 2,793bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
3,443bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Over Five Years 5,240bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
7,801bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Total 11,870us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
13,814us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Notional Amount of Derivatives, [Abstract]    
Less than One Year 187,300bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
224,080bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
One to Three Years 513,494bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
470,259bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Three to Five Years 322,739bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
506,745bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Over Five Years 49,568bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
64,296bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Total 1,073,101invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
1,265,380invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Total return swaps/other | Credit derivatives | Written credit derivatives    
Carrying Value of Derivatives [Abstract]    
Less than One Year 88bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
51bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
One to Three Years 247bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
38bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Three to Five Years 2bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
2bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Over Five Years   86bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Total 337us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
177us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Notional Amount of Derivatives, [Abstract]    
Less than One Year 46,484bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
49,555bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
One to Three Years 10,792bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
8,150bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Three to Five Years 3,268bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
4,103bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Over Five Years 487bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
1,599bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Total 61,031invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
63,407invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Investment grade    
Carrying Value of Credit-Related Notes [Abstract]    
Less than One Year 2bac_CreditDerivativeMaximumExposureLessThanOneYear
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
 
One to Three Years 365bac_CreditDerivativeMaximumExposureOnetoThreeYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
278bac_CreditDerivativeMaximumExposureOnetoThreeYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Three to Five Years 568bac_CreditDerivativeMaximumExposureThreeToFiveYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
595bac_CreditDerivativeMaximumExposureThreeToFiveYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Over Five Years 2,634bac_CreditDerivativeMaximumExposureGreaterThanFiveYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
4,457bac_CreditDerivativeMaximumExposureGreaterThanFiveYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Total 3,569us-gaap_CreditDerivativeMaximumExposureUndiscounted
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
5,330us-gaap_CreditDerivativeMaximumExposureUndiscounted
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Investment grade | Swaps | Credit derivatives | Written credit derivatives    
Carrying Value of Derivatives [Abstract]    
Less than One Year 100bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
2bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
One to Three Years 714bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
220bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Three to Five Years 1,455bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
974bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Over Five Years 939bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
1,134bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Total 3,208us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
2,330us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Notional Amount of Derivatives, [Abstract]    
Less than One Year 132,974bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
170,764bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
One to Three Years 342,914bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
379,273bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Three to Five Years 242,728bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
411,426bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Over Five Years 28,982bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
36,039bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Total 747,598invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
997,502invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Investment grade | Total return swaps/other | Credit derivatives | Written credit derivatives    
Carrying Value of Derivatives [Abstract]    
Less than One Year 24bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
22bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Three to Five Years   0bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Over Five Years   0bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Total 24us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
22us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Notional Amount of Derivatives, [Abstract]    
Less than One Year 22,645bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
21,771bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
One to Three Years   0bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Three to Five Years   0bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Over Five Years   0bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Total 22,645invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
21,771invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Non-investment grade    
Carrying Value of Credit-Related Notes [Abstract]    
Less than One Year 5bac_CreditDerivativeMaximumExposureLessThanOneYear
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
145bac_CreditDerivativeMaximumExposureLessThanOneYear
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
One to Three Years 141bac_CreditDerivativeMaximumExposureOnetoThreeYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
107bac_CreditDerivativeMaximumExposureOnetoThreeYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Three to Five Years 85bac_CreditDerivativeMaximumExposureThreeToFiveYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
756bac_CreditDerivativeMaximumExposureThreeToFiveYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Over Five Years 1,443bac_CreditDerivativeMaximumExposureGreaterThanFiveYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
946bac_CreditDerivativeMaximumExposureGreaterThanFiveYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Total 1,674us-gaap_CreditDerivativeMaximumExposureUndiscounted
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
1,954us-gaap_CreditDerivativeMaximumExposureUndiscounted
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Non-investment grade | Swaps | Credit derivatives | Written credit derivatives    
Carrying Value of Derivatives [Abstract]    
Less than One Year 916bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
424bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
One to Three Years 2,107bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
1,924bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Three to Five Years 1,338bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
2,469bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Over Five Years 4,301bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
6,667bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Total 8,662us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
11,484us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Notional Amount of Derivatives, [Abstract]    
Less than One Year 54,326bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
53,316bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
One to Three Years 170,580bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
90,986bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Three to Five Years 80,011bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
95,319bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Over Five Years 20,586bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
28,257bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Total 325,503invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
267,878invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Non-investment grade | Total return swaps/other | Credit derivatives | Written credit derivatives    
Carrying Value of Derivatives [Abstract]    
Less than One Year 64bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
29bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
One to Three Years 247bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
38bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Three to Five Years 2bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
2bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Over Five Years   86bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Total 313us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
155us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Notional Amount of Derivatives, [Abstract]    
Less than One Year 23,839bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
27,784bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
One to Three Years 10,792bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
8,150bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Three to Five Years 3,268bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
4,103bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Over Five Years 487bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
1,599bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Total $ 38,386invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
$ 41,636invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember