Quarterly report pursuant to Section 13 or 15(d)

Derivatives - Derivative Balances (Details)

v2.4.1.9
Derivatives - Derivative Balances (Details) (USD $)
Mar. 31, 2015
Dec. 31, 2014
Notional Amount of Derivatives, [Abstract]    
Contract/Notional $ 1,094,252,000,000invest_DerivativeNotionalAmount $ 1,134,132,000,000invest_DerivativeNotionalAmount
Derivative Assets [Abstract]    
Gross Derivative Assets 966,000,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement 984,800,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
Less: Legally enforceable master netting agreements (852,000,000,000)us-gaap_DerivativeAssetFairValueGrossLiability (884,800,000,000)us-gaap_DerivativeAssetFairValueGrossLiability
Less: Cash collateral received/paid (52,700,000,000)us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset (47,300,000,000)us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset
Derivative assets 61,331,000,000us-gaap_DerivativeAssets 52,682,000,000us-gaap_DerivativeAssets
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 960,000,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement 981,800,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
Less: Legally enforceable master netting agreements (852,000,000,000)us-gaap_DerivativeLiabilityFairValueGrossAsset (884,800,000,000)us-gaap_DerivativeLiabilityFairValueGrossAsset
Less: Cash collateral received/paid (55,800,000,000)us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset (50,100,000,000)us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset
Derivative liabilities 52,234,000,000us-gaap_DerivativeLiabilities 46,909,000,000us-gaap_DerivativeLiabilities
Interest rate contracts | Swaps    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 22,171,700,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
29,445,400,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 630,600,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
667,000,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 617,100,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
658,700,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,511,900,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
10,159,400,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 2,400,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
1,700,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 2,800,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
2,000,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,680,500,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
1,725,200,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 93,900,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
85,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,678,300,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
1,739,800,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 93,900,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
85,600,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 contracts | Swaps    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 2,135,200,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
2,159,100,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 56,500,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
52,300,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 63,200,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
56,500,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
Foreign exchange contracts | Spot, futures and forwards    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 4,379,500,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
4,226,400,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 78,400,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
70,400,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 78,400,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
72,600,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
Foreign exchange contracts | Options | Written options    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 643,900,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
600,700,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 17,800,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
16,000,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
Foreign exchange contracts | Options | Purchased options    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 633,000,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
584,600,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 17,100,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
15,100,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 191,800,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
193,700,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 3,400,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
3,200,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 3,900,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
4,000,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 71,800,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
69,500,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 1,800,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
2,100,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 2,200,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
1,800,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 367,900,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
341,000,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 27,800,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
26,000,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 342,400,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
318,400,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 29,100,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
27,900,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 67,000,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
74,300,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 4,800,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
5,800,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 8,300,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
8,500,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 416,100,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
376,500,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
Derivative Assets [Abstract]    
Gross Derivative Assets 4,000,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
4,500,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 1,100,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
1,800,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 106,800,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
129,500,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 9,400,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_PositionAxis
= us-gaap_ShortMember
11,500,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 122,000,000,000invest_DerivativeNotionalAmount
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
141,300,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 8,900,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OptionMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_PositionAxis
= us-gaap_LongMember
10,700,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 9,900,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
12,207,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
Credit derivatives | Swaps | Purchased credit derivatives    
Notional Amount of Derivatives, [Abstract]    
Contract/Notional 1,054,700,000,000invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
1,094,800,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 10,900,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
13,300,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,000,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
23,400,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,032,418,000,000invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
1,073,101,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 23,900,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
24,500,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 9,584,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
11,870,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 43,800,000,000invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
44,300,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
200,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,200,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapBuyingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
1,400,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,834,000,000invest_DerivativeNotionalAmount
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
61,031,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 100,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
500,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 316,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_CreditDerivativesByContractTypeAxis
= us-gaap_CreditDefaultSwapSellingProtectionMember
/ us-gaap_DerivativeByNatureAxis
= us-gaap_OtherCreditDerivativesMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CreditRiskContractMember
337,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 954,500,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
974,000,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 956,100,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
979,200,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 621,300,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
658,500,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 616,000,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
658,200,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 2,400,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
1,700,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,800,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
2,000,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 93,900,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
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
Trading and Other Risk Management Derivatives | Interest rate contracts | Options | Purchased options    
Derivative Assets [Abstract]    
Gross Derivative Assets 93,900,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
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
Trading and Other Risk Management Derivatives | Foreign exchange contracts | Swaps    
Derivative Assets [Abstract]    
Gross Derivative Assets 55,800,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
51,500,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 60,600,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
54,600,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 contracts | Spot, futures and forwards    
Derivative Assets [Abstract]    
Gross Derivative Assets 76,900,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
68,900,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 78,200,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_SpotFuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
72,400,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 contracts | Options | Written options    
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 17,800,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
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
Trading and Other Risk Management Derivatives | Foreign exchange contracts | Options | Purchased options    
Derivative Assets [Abstract]    
Gross Derivative Assets 17,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
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
Trading and Other Risk Management Derivatives | Equity contracts | Swaps    
Derivative Assets [Abstract]    
Gross Derivative Assets 3,400,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
3,200,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 3,900,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
4,000,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 1,800,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
2,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 2,200,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
1,800,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 27,800,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
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
Trading and Other Risk Management Derivatives | Equity contracts | Options | Purchased options    
Derivative Assets [Abstract]    
Gross Derivative Assets 29,100,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
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
Trading and Other Risk Management Derivatives | Commodity contracts | Swaps    
Derivative Assets [Abstract]    
Gross Derivative Assets 4,800,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
5,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,300,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
8,500,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,000,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
4,500,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,100,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_NondesignatedMember
1,800,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 9,400,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
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
Trading and Other Risk Management Derivatives | Commodity contracts | Options | Purchased options    
Derivative Assets [Abstract]    
Gross Derivative Assets 8,900,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
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
Trading and Other Risk Management Derivatives | Credit derivatives | Swaps | Purchased credit derivatives    
Derivative Assets [Abstract]    
Gross Derivative Assets 10,900,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
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
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 23,000,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
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
Trading and Other Risk Management Derivatives | Credit derivatives | Swaps | Written credit derivatives    
Derivative Assets [Abstract]    
Gross Derivative Assets 23,900,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
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
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 9,600,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
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
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
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
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 1,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
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
Trading and Other Risk Management Derivatives | Credit derivatives | Total return swaps/other | Written credit derivatives    
Derivative Assets [Abstract]    
Gross Derivative Assets 100,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
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
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
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
Qualifying Accounting Hedges    
Derivative Assets [Abstract]    
Gross Derivative Assets 11,500,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
10,800,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
Derivative Liabilities [Abstract]    
Gross Derivative Liabilities 3,900,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
2,600,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
Qualifying Accounting Hedges | Interest rate contracts | Swaps    
Derivative Assets [Abstract]    
Gross Derivative Assets 9,300,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
8,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 1,100,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
500,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 contracts | Swaps    
Derivative Assets [Abstract]    
Gross Derivative Assets 700,000,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
800,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 2,600,000,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= us-gaap_SwapMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember
1,900,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 contracts | 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
1,500,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
200,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
$ 0us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_DerivativeByNatureAxis
= bac_FuturesAndForwardsMember
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_HedgingDesignationAxis
= us-gaap_DesignatedAsHedgingInstrumentMember