Quarterly report pursuant to Section 13 or 15(d)

Derivatives - Credit Derivatives (Details)

v2.4.1.9
Derivatives - Credit Derivatives (Details) (USD $)
In Millions, unless otherwise specified
Mar. 31, 2015
Dec. 31, 2014
Carrying Value of Derivatives [Abstract]    
Total $ 960,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement $ 981,800us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
Carrying Value of Credit-Related Notes [Abstract]    
Less than One Year 11bac_CreditDerivativeMaximumExposureLessThanOneYear 7bac_CreditDerivativeMaximumExposureLessThanOneYear
One to Three Years 512bac_CreditDerivativeMaximumExposureOnetoThreeYears 506bac_CreditDerivativeMaximumExposureOnetoThreeYears
Three to Five Years 649bac_CreditDerivativeMaximumExposureThreeToFiveYears 653bac_CreditDerivativeMaximumExposureThreeToFiveYears
Over Five Years 3,902bac_CreditDerivativeMaximumExposureGreaterThanFiveYears 4,077bac_CreditDerivativeMaximumExposureGreaterThanFiveYears
Total 5,074us-gaap_CreditDerivativeMaximumExposureUndiscounted 5,243us-gaap_CreditDerivativeMaximumExposureUndiscounted
Notional Amount of Derivatives, [Abstract]    
Less than One Year 228,830bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear 233,784bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
One to Three Years 503,925bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears 524,286bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
Three to Five Years 288,631bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears 326,007bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
Over Five Years 72,866bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears 50,055bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
Total 1,094,252invest_DerivativeNotionalAmount 1,134,132invest_DerivativeNotionalAmount
Credit derivatives    
Carrying Value of Derivatives [Abstract]    
Less than One Year 528bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
1,104bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
One to Three Years 2,131bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
3,068bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Three to Five Years 2,495bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
2,795bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Over Five Years 4,746bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationGreaterThanFiveYears
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
5,240bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationGreaterThanFiveYears
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Total 9,900us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
12,207us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Swaps | Credit derivatives | Written credit derivatives    
Carrying Value of Derivatives [Abstract]    
Less than One Year 333bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
1,016bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
One to Three Years 2,018bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
2,821bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Three to Five Years 2,487bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
2,793bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Over Five Years 4,746bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
5,240bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Total 9,584us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
11,870us-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 176,939bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
187,300bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
One to Three Years 494,240bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
513,494bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Three to Five Years 288,479bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
322,739bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Over Five Years 72,760bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
49,568bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Total 1,032,418invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
1,073,101invest_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 195bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
88bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
One to Three Years 113bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
247bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Three to Five Years 8bac_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
Total 316us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
337us-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 51,891bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
46,484bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
One to Three Years 9,685bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
10,792bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Three to Five Years 152bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
3,268bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Over Five Years 106bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
487bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Total 61,834invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
61,031invest_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 3bac_CreditDerivativeMaximumExposureLessThanOneYear
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
2bac_CreditDerivativeMaximumExposureLessThanOneYear
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
One to Three Years 361bac_CreditDerivativeMaximumExposureOnetoThreeYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
365bac_CreditDerivativeMaximumExposureOnetoThreeYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Three to Five Years 583bac_CreditDerivativeMaximumExposureThreeToFiveYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
568bac_CreditDerivativeMaximumExposureThreeToFiveYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Over Five Years 2,460bac_CreditDerivativeMaximumExposureGreaterThanFiveYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
2,634bac_CreditDerivativeMaximumExposureGreaterThanFiveYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Total 3,407us-gaap_CreditDerivativeMaximumExposureUndiscounted
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
3,569us-gaap_CreditDerivativeMaximumExposureUndiscounted
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
Investment grade | Swaps | Credit derivatives | Written credit derivatives    
Carrying Value of Derivatives [Abstract]    
Less than One Year 27bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
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
One to Three Years 286bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
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
Three to Five Years 760bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
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
Over Five Years 688bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
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
Total 1,761us-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
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
Notional Amount of Derivatives, [Abstract]    
Less than One Year 125,169bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
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
One to Three Years 323,858bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
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
Three to Five Years 210,676bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
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
Over Five Years 48,022bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
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
Total 707,725invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
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
Investment grade | Total return swaps/other | Credit derivatives | Written credit derivatives    
Carrying Value of Derivatives [Abstract]    
Less than One Year 26bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
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
Total 26us-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
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
Notional Amount of Derivatives, [Abstract]    
Less than One Year 26,442bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
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
Three to Five Years     
Total 26,442invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalInvestmentGradeMember
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
Non-investment grade    
Carrying Value of Credit-Related Notes [Abstract]    
Less than One Year 8bac_CreditDerivativeMaximumExposureLessThanOneYear
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
5bac_CreditDerivativeMaximumExposureLessThanOneYear
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
One to Three Years 151bac_CreditDerivativeMaximumExposureOnetoThreeYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
141bac_CreditDerivativeMaximumExposureOnetoThreeYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Three to Five Years 66bac_CreditDerivativeMaximumExposureThreeToFiveYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
85bac_CreditDerivativeMaximumExposureThreeToFiveYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Over Five Years 1,442bac_CreditDerivativeMaximumExposureGreaterThanFiveYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
1,443bac_CreditDerivativeMaximumExposureGreaterThanFiveYears
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
Total 1,667us-gaap_CreditDerivativeMaximumExposureUndiscounted
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
1,674us-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 306bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
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
One to Three Years 1,732bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
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
Three to Five Years 1,727bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
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
Over Five Years 4,058bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
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
Total 7,823us-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
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
Notional Amount of Derivatives, [Abstract]    
Less than One Year 51,770bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
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
One to Three Years 170,382bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
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
Three to Five Years 77,803bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
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
Over Five Years 24,738bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
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
Total 324,693invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
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
Non-investment grade | Total return swaps/other | Credit derivatives | Written credit derivatives    
Carrying Value of Derivatives [Abstract]    
Less than One Year 169bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
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
One to Three Years 113bac_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjecttoMasterNettingArrangementExpirationFromOnetoThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
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
Three to Five Years 8bac_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
Total 290us-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
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
Notional Amount of Derivatives, [Abstract]    
Less than One Year 25,449bac_DerivativeLiabilityNotionalAmountExpirationLessThanOneYear
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
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
One to Three Years 9,685bac_DerivativeLiabilityNotionalAmountExpirationFromOneToThreeYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
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
Three to Five Years 152bac_DerivativeLiabilityNotionalAmountExpirationFromThreeToFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
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
Over Five Years 106bac_DerivativeLiabilityNotionalAmountGreaterThanFiveYears
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
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
Total $ 35,392invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalNoninvestmentGradeMember
$ 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