Annual report pursuant to Section 13 and 15(d)

Derivatives - Derivative Balances (Details)

v2.4.1.9
Derivatives - Derivative Balances (Details) (USD $)
Dec. 31, 2014
Dec. 31, 2013
Notional Amount of Derivatives, [Abstract]    
Contract/Notional $ 1,134,132,000,000invest_DerivativeNotionalAmount $ 1,328,787,000,000invest_DerivativeNotionalAmount
Derivative Assets [Abstract]    
Gross Derivative Assets 984,800,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement 920,300,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
Less: Legally enforceable master netting agreements (884,800,000,000)us-gaap_DerivativeAssetFairValueGrossLiability (825,500,000,000)us-gaap_DerivativeAssetFairValueGrossLiability
Less: Cash collateral received/paid (47,300,000,000)us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset (47,300,000,000)us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset
Derivative assets 52,682,000,000us-gaap_DerivativeAssets 47,495,000,000us-gaap_DerivativeAssets
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 981,800,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement 906,400,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
Less: Legally enforceable master netting agreements (884,800,000,000)us-gaap_DerivativeLiabilityFairValueGrossAsset (825,500,000,000)us-gaap_DerivativeLiabilityFairValueGrossAsset
Less: Cash collateral received/paid (50,100,000,000)us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset (43,500,000,000)us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset
Derivative liabilities 46,909,000,000us-gaap_DerivativeLiabilities 37,407,000,000us-gaap_DerivativeLiabilities
Interest rate contracts | Swaps    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 29,445,400,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
33,272,000,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 667,000,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
667,400,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 658,700,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
659,300,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
Interest rate contracts | Futures and forwards    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 10,159,400,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
8,217,600,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 1,700,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
1,600,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 2,000,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
1,500,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
Interest rate contracts | Options | Written options    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 1,725,200,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
2,065,400,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 85,400,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
64,400,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
Interest rate contracts | Options | Purchased options    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 1,739,800,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
2,028,300,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
Derivative Assets [Abstract]    
Gross Derivative Assets 85,600,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
65,400,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 0us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
0us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
Foreign exchange risk | Swaps    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 2,159,100,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
2,284,100,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 52,300,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
44,100,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 56,500,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
43,700,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
Foreign exchange risk | Spot, futures and forwards    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 4,226,400,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
2,922,500,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 70,400,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
33,200,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 72,600,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
34,600,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
Foreign exchange risk | Options | Written options    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 600,700,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
412,400,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 16,000,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
9,200,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
Foreign exchange risk | Options | Purchased options    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 584,600,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
392,400,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
Derivative Assets [Abstract]    
Gross Derivative Assets 15,100,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
8,800,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 0us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
0us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
Equity contracts | Swaps    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 193,700,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
162,000,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 3,200,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
3,600,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 4,000,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
4,200,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
Equity contracts | Futures and forwards    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 69,500,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
71,400,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 2,100,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
1,100,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 1,800,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
1,400,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
Equity contracts | Options | Written options    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 341,000,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
315,600,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 26,000,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
29,600,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
Equity contracts | Options | Purchased options    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 318,400,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
266,700,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
Derivative Assets [Abstract]    
Gross Derivative Assets 27,900,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
30,400,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 0us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
0us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
Commodity contracts | Swaps    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 74,300,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
73,100,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 5,800,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
3,800,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 8,500,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
5,700,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
Commodity contracts | Futures and forwards    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 376,500,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
454,400,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 4,500,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
4,700,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 1,800,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
2,500,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
Commodity contracts | Options | Written options    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 129,500,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
157,300,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 11,500,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
5,000,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
Commodity contracts | Options | Purchased options    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 141,300,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
164,000,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
Derivative Assets [Abstract]    
Gross Derivative Assets 10,700,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
5,200,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 0us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
0us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
Credit derivatives    
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 12,207,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
13,991,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Credit derivatives | Swaps | Purchased credit derivatives    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 1,094,800,000,000invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
1,305,100,000,000invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 13,300,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
15,700,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 23,400,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
28,100,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Credit derivatives | Swaps | Written credit derivatives    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 1,073,101,000,000invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
1,265,380,000,000invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 24,500,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
29,300,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 11,870,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
13,814,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Credit derivatives | Total return swaps/other | Purchased credit derivatives    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 44,300,000,000invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
38,100,000,000invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 200,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
2,000,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 1,400,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
3,200,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Credit derivatives | Total return swaps/other | Written credit derivatives    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 61,031,000,000invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
63,407,000,000invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 500,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
4,000,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 337,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
177,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Trading and Other Risk Management Derivatives    
Derivative Assets [Abstract]    
Gross Derivative Assets 974,000,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
911,100,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 979,200,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
903,400,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Trading and Other Risk Management Derivatives | Interest rate contracts | Swaps    
Derivative Assets [Abstract]    
Gross Derivative Assets 658,500,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
659,900,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 658,200,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
658,400,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Trading and Other Risk Management Derivatives | Interest rate contracts | Futures and forwards    
Derivative Assets [Abstract]    
Gross Derivative Assets 1,700,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
1,600,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 2,000,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
1,500,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Trading and Other Risk Management Derivatives | Interest rate contracts | Options | Written options    
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 85,400,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
64,400,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
Trading and Other Risk Management Derivatives | Interest rate contracts | Options | Purchased options    
Derivative Assets [Abstract]    
Gross Derivative Assets 85,600,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
65,400,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
Trading and Other Risk Management Derivatives | Foreign exchange risk | Swaps    
Derivative Assets [Abstract]    
Gross Derivative Assets 51,500,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
43,100,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 54,600,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
42,700,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Trading and Other Risk Management Derivatives | Foreign exchange risk | Spot, futures and forwards    
Derivative Assets [Abstract]    
Gross Derivative Assets 68,900,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
32,500,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 72,400,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
33,500,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Trading and Other Risk Management Derivatives | Foreign exchange risk | Options | Written options    
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 16,000,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
9,200,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
Trading and Other Risk Management Derivatives | Foreign exchange risk | Options | Purchased options    
Derivative Assets [Abstract]    
Gross Derivative Assets 15,100,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
8,800,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
Trading and Other Risk Management Derivatives | Equity contracts | Swaps    
Derivative Assets [Abstract]    
Gross Derivative Assets 3,200,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
3,600,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 4,000,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
4,200,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Trading and Other Risk Management Derivatives | Equity contracts | Futures and forwards    
Derivative Assets [Abstract]    
Gross Derivative Assets 2,100,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
1,100,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 1,800,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
1,400,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Trading and Other Risk Management Derivatives | Equity contracts | Options | Written options    
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 26,000,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
29,600,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
Trading and Other Risk Management Derivatives | Equity contracts | Options | Purchased options    
Derivative Assets [Abstract]    
Gross Derivative Assets 27,900,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
30,400,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
Trading and Other Risk Management Derivatives | Commodity contracts | Swaps    
Derivative Assets [Abstract]    
Gross Derivative Assets 5,800,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
3,800,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 8,500,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
5,700,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Trading and Other Risk Management Derivatives | Commodity contracts | Futures and forwards    
Derivative Assets [Abstract]    
Gross Derivative Assets 4,500,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
4,700,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 1,800,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
2,500,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Trading and Other Risk Management Derivatives | Commodity contracts | Options | Written options    
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 11,500,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
5,000,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
Trading and Other Risk Management Derivatives | Commodity contracts | Options | Purchased options    
Derivative Assets [Abstract]    
Gross Derivative Assets 10,700,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
5,200,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
Trading and Other Risk Management Derivatives | Credit derivatives | Swaps | Purchased credit derivatives    
Derivative Assets [Abstract]    
Gross Derivative Assets 13,300,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
15,700,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 23,400,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
28,100,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Trading and Other Risk Management Derivatives | Credit derivatives | Swaps | Written credit derivatives    
Derivative Assets [Abstract]    
Gross Derivative Assets 24,500,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
29,300,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 11,900,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
13,800,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Trading and Other Risk Management Derivatives | Credit derivatives | Total return swaps/other | Purchased credit derivatives    
Derivative Assets [Abstract]    
Gross Derivative Assets 200,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
2,000,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 1,400,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
3,200,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Trading and Other Risk Management Derivatives | Credit derivatives | Total return swaps/other | Written credit derivatives    
Derivative Assets [Abstract]    
Gross Derivative Assets 500,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
4,000,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 300,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
200,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Qualifying Accounting Hedges    
Derivative Assets [Abstract]    
Gross Derivative Assets 10,800,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
9,200,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 2,600,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
3,000,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
Qualifying Accounting Hedges | Interest rate contracts | Swaps    
Derivative Assets [Abstract]    
Gross Derivative Assets 8,500,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
7,500,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 500,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
900,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
Qualifying Accounting Hedges | Interest rate contracts | Futures and forwards    
Derivative Assets [Abstract]    
Gross Derivative Assets 0us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
0us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
Qualifying Accounting Hedges | Foreign exchange risk | Swaps    
Derivative Assets [Abstract]    
Gross Derivative Assets 800,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
1,000,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 1,900,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
1,000,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
Qualifying Accounting Hedges | Foreign exchange risk | Spot, futures and forwards    
Derivative Assets [Abstract]    
Gross Derivative Assets 1,500,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
700,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 200,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
1,100,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
Qualifying Accounting Hedges | Commodity contracts | Swaps    
Derivative Assets [Abstract]    
Gross Derivative Assets 0us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
0us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
Qualifying Accounting Hedges | Commodity contracts | Futures and forwards    
Derivative Assets [Abstract]    
Gross Derivative Assets $ 0us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember