Annual report pursuant to Section 13 and 15(d)

Derivatives - Derivatives Designated as Accounting Hedges - Cash Flow and Net Investment Hedges (Details)

v2.4.1.9
Derivatives - Derivatives Designated as Accounting Hedges - Cash Flow and Net Investment Hedges (Details) (USD $)
In Millions, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Cash flow hedges      
Derivative Instruments, Gain (Loss) [Line Items]      
Gains (Losses) Recognized in Accumulated OCI on Derivatives $ 195us-gaap_DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
$ 156us-gaap_DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
$ 430us-gaap_DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
Gains (Losses) in Income Reclassified from Accumulated OCI (760)us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
(773)us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
(1,035)us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
Hedge Ineffectiveness and Amounts Excluded from Effectiveness Testing (4)us-gaap_DerivativeInstrumentsGainLossRecognizedInIncomeIneffectivePortionAndAmountExcludedFromEffectivenessTestingNet
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
   
Interest rate risk on variable-rate portfolios | Cash flow hedges      
Derivative Instruments, Gain (Loss) [Line Items]      
Gains (Losses) Recognized in Accumulated OCI on Derivatives 68us-gaap_DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnVariableRatePortfoliosMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
(321)us-gaap_DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnVariableRatePortfoliosMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
10us-gaap_DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnVariableRatePortfoliosMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
Gains (Losses) in Income Reclassified from Accumulated OCI (1,119)us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnVariableRatePortfoliosMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
(1,102)us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnVariableRatePortfoliosMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
(957)us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnVariableRatePortfoliosMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
Hedge Ineffectiveness and Amounts Excluded from Effectiveness Testing (4)us-gaap_DerivativeInstrumentsGainLossRecognizedInIncomeIneffectivePortionAndAmountExcludedFromEffectivenessTestingNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_InterestRateRiskOnVariableRatePortfoliosMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
   
Price risk on restricted stock awards | Cash flow hedges      
Derivative Instruments, Gain (Loss) [Line Items]      
Gains (Losses) Recognized in Accumulated OCI on Derivatives 127us-gaap_DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_PriceRiskonRestrictedStockAwardsMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
477us-gaap_DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_PriceRiskonRestrictedStockAwardsMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
420us-gaap_DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_PriceRiskonRestrictedStockAwardsMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
Gains (Losses) in Income Reclassified from Accumulated OCI 359us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_PriceRiskonRestrictedStockAwardsMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
329us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_PriceRiskonRestrictedStockAwardsMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
(78)us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentRiskAxis
= bac_PriceRiskonRestrictedStockAwardsMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_CashFlowHedgingMember
Foreign exchange risk | Net investment hedges      
Derivative Instruments, Gain (Loss) [Line Items]      
Gains (Losses) Recognized in Accumulated OCI on Derivatives 3,021us-gaap_DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_NetInvestmentHedgingMember
1,024us-gaap_DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_NetInvestmentHedgingMember
(771)us-gaap_DerivativeInstrumentsGainLossRecognizedInOtherComprehensiveIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_NetInvestmentHedgingMember
Gains (Losses) in Income Reclassified from Accumulated OCI 21us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_NetInvestmentHedgingMember
(355)us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_NetInvestmentHedgingMember
(26)us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_NetInvestmentHedgingMember
Hedge Ineffectiveness and Amounts Excluded from Effectiveness Testing $ (503)us-gaap_DerivativeInstrumentsGainLossRecognizedInIncomeIneffectivePortionAndAmountExcludedFromEffectivenessTestingNet
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_NetInvestmentHedgingMember
$ (134)us-gaap_DerivativeInstrumentsGainLossRecognizedInIncomeIneffectivePortionAndAmountExcludedFromEffectivenessTestingNet
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_NetInvestmentHedgingMember
$ (269)us-gaap_DerivativeInstrumentsGainLossRecognizedInIncomeIneffectivePortionAndAmountExcludedFromEffectivenessTestingNet
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_ForeignExchangeContractMember
/ us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis
= us-gaap_NetInvestmentHedgingMember