Annual report pursuant to Section 13 and 15(d)

Derivatives - Derivatives Designated as Accounting Hedges - Fair Value Hedges (Details)

v2.4.1.9
Derivatives - Derivatives Designated as Accounting Hedges - Fair Value Hedges (Details) (USD $)
In Millions, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Effect of Fair Value Hedges on Results of Operations [Abstract]      
Derivative $ (82)us-gaap_GainLossOnFairValueHedgesRecognizedInEarnings $ (5,169)us-gaap_GainLossOnFairValueHedgesRecognizedInEarnings $ (1,687)us-gaap_GainLossOnFairValueHedgesRecognizedInEarnings
Hedged Item (827)us-gaap_ChangeInUnrealizedGainLossOnHedgedItemInFairValueHedge1 4,181us-gaap_ChangeInUnrealizedGainLossOnHedgedItemInFairValueHedge1 552us-gaap_ChangeInUnrealizedGainLossOnHedgedItemInFairValueHedge1
Hedge Ineffectiveness (909)us-gaap_GainLossOnFairValueHedgeIneffectivenessNet (988)us-gaap_GainLossOnFairValueHedgeIneffectivenessNet (1,135)us-gaap_GainLossOnFairValueHedgeIneffectivenessNet
Interest rate risk on long-term debt | Interest expense      
Effect of Fair Value Hedges on Results of Operations [Abstract]      
Derivative 2,144us-gaap_GainLossOnFairValueHedgesRecognizedInEarnings
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnLongTernDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestExpenseMember
(4,704)us-gaap_GainLossOnFairValueHedgesRecognizedInEarnings
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnLongTernDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestExpenseMember
(195)us-gaap_GainLossOnFairValueHedgesRecognizedInEarnings
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnLongTernDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestExpenseMember
Hedged Item (2,935)us-gaap_ChangeInUnrealizedGainLossOnHedgedItemInFairValueHedge1
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnLongTernDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestExpenseMember
3,925us-gaap_ChangeInUnrealizedGainLossOnHedgedItemInFairValueHedge1
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnLongTernDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestExpenseMember
(770)us-gaap_ChangeInUnrealizedGainLossOnHedgedItemInFairValueHedge1
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnLongTernDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestExpenseMember
Hedge Ineffectiveness (791)us-gaap_GainLossOnFairValueHedgeIneffectivenessNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnLongTernDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestExpenseMember
(779)us-gaap_GainLossOnFairValueHedgeIneffectivenessNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnLongTernDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestExpenseMember
(965)us-gaap_GainLossOnFairValueHedgeIneffectivenessNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnLongTernDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestExpenseMember
Interest rate and foreign currency risk on long-term debt | Interest expense      
Effect of Fair Value Hedges on Results of Operations [Abstract]      
Derivative (2,212)us-gaap_GainLossOnFairValueHedgesRecognizedInEarnings
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateAndForeignCurrencyRiskOnLongTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestExpenseMember
(1,291)us-gaap_GainLossOnFairValueHedgesRecognizedInEarnings
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateAndForeignCurrencyRiskOnLongTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestExpenseMember
(1,482)us-gaap_GainLossOnFairValueHedgesRecognizedInEarnings
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateAndForeignCurrencyRiskOnLongTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestExpenseMember
Hedged Item 2,120us-gaap_ChangeInUnrealizedGainLossOnHedgedItemInFairValueHedge1
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateAndForeignCurrencyRiskOnLongTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestExpenseMember
1,085us-gaap_ChangeInUnrealizedGainLossOnHedgedItemInFairValueHedge1
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateAndForeignCurrencyRiskOnLongTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestExpenseMember
1,225us-gaap_ChangeInUnrealizedGainLossOnHedgedItemInFairValueHedge1
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateAndForeignCurrencyRiskOnLongTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestExpenseMember
Hedge Ineffectiveness (92)us-gaap_GainLossOnFairValueHedgeIneffectivenessNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateAndForeignCurrencyRiskOnLongTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestExpenseMember
(206)us-gaap_GainLossOnFairValueHedgeIneffectivenessNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateAndForeignCurrencyRiskOnLongTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestExpenseMember
(257)us-gaap_GainLossOnFairValueHedgeIneffectivenessNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateAndForeignCurrencyRiskOnLongTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestExpenseMember
Interest rate risk on AFS securities | Interest income      
Effect of Fair Value Hedges on Results of Operations [Abstract]      
Derivative (35)us-gaap_GainLossOnFairValueHedgesRecognizedInEarnings
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnAvailableForSaleSecuritiesMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestIncomeMember
839us-gaap_GainLossOnFairValueHedgesRecognizedInEarnings
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnAvailableForSaleSecuritiesMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestIncomeMember
(4)us-gaap_GainLossOnFairValueHedgesRecognizedInEarnings
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnAvailableForSaleSecuritiesMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestIncomeMember
Hedged Item 3us-gaap_ChangeInUnrealizedGainLossOnHedgedItemInFairValueHedge1
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnAvailableForSaleSecuritiesMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestIncomeMember
(840)us-gaap_ChangeInUnrealizedGainLossOnHedgedItemInFairValueHedge1
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnAvailableForSaleSecuritiesMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestIncomeMember
91us-gaap_ChangeInUnrealizedGainLossOnHedgedItemInFairValueHedge1
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnAvailableForSaleSecuritiesMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestIncomeMember
Hedge Ineffectiveness (32)us-gaap_GainLossOnFairValueHedgeIneffectivenessNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnAvailableForSaleSecuritiesMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestIncomeMember
(1)us-gaap_GainLossOnFairValueHedgeIneffectivenessNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnAvailableForSaleSecuritiesMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestIncomeMember
87us-gaap_GainLossOnFairValueHedgeIneffectivenessNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnAvailableForSaleSecuritiesMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_InterestIncomeMember
Price risk on commodity inventory | Trading gain (loss)      
Effect of Fair Value Hedges on Results of Operations [Abstract]      
Derivative 21us-gaap_GainLossOnFairValueHedgesRecognizedInEarnings
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
(13)us-gaap_GainLossOnFairValueHedgesRecognizedInEarnings
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
(6)us-gaap_GainLossOnFairValueHedgesRecognizedInEarnings
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
Hedged Item (15)us-gaap_ChangeInUnrealizedGainLossOnHedgedItemInFairValueHedge1
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
11us-gaap_ChangeInUnrealizedGainLossOnHedgedItemInFairValueHedge1
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
6us-gaap_ChangeInUnrealizedGainLossOnHedgedItemInFairValueHedge1
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
Hedge Ineffectiveness $ 6us-gaap_GainLossOnFairValueHedgeIneffectivenessNet
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
$ (2)us-gaap_GainLossOnFairValueHedgeIneffectivenessNet
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember