Derivatives - Sales and Trading Revenue (Details) (USD $) In Millions, unless otherwise specified
|
3 Months Ended |
Mar. 31, 2015
|
Mar. 31, 2014
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
$ 2,247us-gaap_TradingGainsLosses
|
$ 2,467us-gaap_TradingGainsLosses
|
Brokerage commissions and asset management fee revenue | Global Markets |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
562us-gaap_TradingGainsLosses / us-gaap_IncomeStatementLocationAxis = bac_BrokerageCommissionsAndAssetManagementFeeRevenueMember / us-gaap_StatementBusinessSegmentsAxis = bac_GlobalMarketsSegmentMember
|
561us-gaap_TradingGainsLosses / us-gaap_IncomeStatementLocationAxis = bac_BrokerageCommissionsAndAssetManagementFeeRevenueMember / us-gaap_StatementBusinessSegmentsAxis = bac_GlobalMarketsSegmentMember
|
Trading Securities |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
3,867us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember
|
4,177us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember
|
Trading Securities | Trading Account Profits |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
2,127us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
2,367us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
Trading Securities | Net Interest Income |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
882us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_InterestIncomeExpenseMember
|
876us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_InterestIncomeExpenseMember
|
Trading Securities | Other |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
858us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_OperatingIncomeLossandBrokerageCommissionsandAssetManagementFeeRevenueMember
|
934us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_OperatingIncomeLossandBrokerageCommissionsandAssetManagementFeeRevenueMember
|
Trading Securities | Interest rate risk |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
905us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_TradingActivityByTypeAxis = bac_IncomeInterestRateMember
|
786us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_TradingActivityByTypeAxis = bac_IncomeInterestRateMember
|
Trading Securities | Interest rate risk | Trading Account Profits |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
510us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember / us-gaap_TradingActivityByTypeAxis = bac_IncomeInterestRateMember
|
369us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember / us-gaap_TradingActivityByTypeAxis = bac_IncomeInterestRateMember
|
Trading Securities | Interest rate risk | Net Interest Income |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
306us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_InterestIncomeExpenseMember / us-gaap_TradingActivityByTypeAxis = bac_IncomeInterestRateMember
|
279us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_InterestIncomeExpenseMember / us-gaap_TradingActivityByTypeAxis = bac_IncomeInterestRateMember
|
Trading Securities | Interest rate risk | Other |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
89us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_OperatingIncomeLossandBrokerageCommissionsandAssetManagementFeeRevenueMember / us-gaap_TradingActivityByTypeAxis = bac_IncomeInterestRateMember
|
138us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_OperatingIncomeLossandBrokerageCommissionsandAssetManagementFeeRevenueMember / us-gaap_TradingActivityByTypeAxis = bac_IncomeInterestRateMember
|
Trading Securities | Foreign exchange risk |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
413us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_TradingActivityByTypeAxis = us-gaap_ForeignExchangeMember
|
209us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_TradingActivityByTypeAxis = us-gaap_ForeignExchangeMember
|
Trading Securities | Foreign exchange risk | Trading Account Profits |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
446us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember / us-gaap_TradingActivityByTypeAxis = us-gaap_ForeignExchangeMember
|
237us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember / us-gaap_TradingActivityByTypeAxis = us-gaap_ForeignExchangeMember
|
Trading Securities | Foreign exchange risk | Net Interest Income |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
(2)us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_InterestIncomeExpenseMember / us-gaap_TradingActivityByTypeAxis = us-gaap_ForeignExchangeMember
|
2us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_InterestIncomeExpenseMember / us-gaap_TradingActivityByTypeAxis = us-gaap_ForeignExchangeMember
|
Trading Securities | Foreign exchange risk | Other |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
(31)us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_OperatingIncomeLossandBrokerageCommissionsandAssetManagementFeeRevenueMember / us-gaap_TradingActivityByTypeAxis = us-gaap_ForeignExchangeMember
|
(30)us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_OperatingIncomeLossandBrokerageCommissionsandAssetManagementFeeRevenueMember / us-gaap_TradingActivityByTypeAxis = us-gaap_ForeignExchangeMember
|
Trading Securities | Equity risk |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
1,160us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_TradingActivityByTypeAxis = us-gaap_EquityMember
|
1,191us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_TradingActivityByTypeAxis = us-gaap_EquityMember
|
Trading Securities | Equity risk | Trading Account Profits |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
570us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember / us-gaap_TradingActivityByTypeAxis = us-gaap_EquityMember
|
601us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember / us-gaap_TradingActivityByTypeAxis = us-gaap_EquityMember
|
Trading Securities | Equity risk | Net Interest Income |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
13us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_InterestIncomeExpenseMember / us-gaap_TradingActivityByTypeAxis = us-gaap_EquityMember
|
(14)us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_InterestIncomeExpenseMember / us-gaap_TradingActivityByTypeAxis = us-gaap_EquityMember
|
Trading Securities | Equity risk | Other |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
577us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_OperatingIncomeLossandBrokerageCommissionsandAssetManagementFeeRevenueMember / us-gaap_TradingActivityByTypeAxis = us-gaap_EquityMember
|
604us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_OperatingIncomeLossandBrokerageCommissionsandAssetManagementFeeRevenueMember / us-gaap_TradingActivityByTypeAxis = us-gaap_EquityMember
|
Trading Securities | Credit risk |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
1,198us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_TradingActivityByTypeAxis = us-gaap_CreditMember
|
1,881us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_TradingActivityByTypeAxis = us-gaap_CreditMember
|
Trading Securities | Credit risk | Trading Account Profits |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
444us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember / us-gaap_TradingActivityByTypeAxis = us-gaap_CreditMember
|
1,027us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember / us-gaap_TradingActivityByTypeAxis = us-gaap_CreditMember
|
Trading Securities | Credit risk | Net Interest Income |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
587us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_InterestIncomeExpenseMember / us-gaap_TradingActivityByTypeAxis = us-gaap_CreditMember
|
699us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_InterestIncomeExpenseMember / us-gaap_TradingActivityByTypeAxis = us-gaap_CreditMember
|
Trading Securities | Credit risk | Other |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
167us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_OperatingIncomeLossandBrokerageCommissionsandAssetManagementFeeRevenueMember / us-gaap_TradingActivityByTypeAxis = us-gaap_CreditMember
|
155us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_OperatingIncomeLossandBrokerageCommissionsandAssetManagementFeeRevenueMember / us-gaap_TradingActivityByTypeAxis = us-gaap_CreditMember
|
Trading Securities | Other risk |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
191us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_TradingActivityByTypeAxis = us-gaap_OtherTradingMember
|
110us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_TradingActivityByTypeAxis = us-gaap_OtherTradingMember
|
Trading Securities | Other risk | Trading Account Profits |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
157us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember / us-gaap_TradingActivityByTypeAxis = us-gaap_OtherTradingMember
|
133us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember / us-gaap_TradingActivityByTypeAxis = us-gaap_OtherTradingMember
|
Trading Securities | Other risk | Net Interest Income |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
(22)us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_InterestIncomeExpenseMember / us-gaap_TradingActivityByTypeAxis = us-gaap_OtherTradingMember
|
(90)us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_InterestIncomeExpenseMember / us-gaap_TradingActivityByTypeAxis = us-gaap_OtherTradingMember
|
Trading Securities | Other risk | Other |
|
|
Trading Activity, Gains and Losses, Net [Line Items] |
|
|
Sales and Trading Revenue |
$ 56us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_OperatingIncomeLossandBrokerageCommissionsandAssetManagementFeeRevenueMember / us-gaap_TradingActivityByTypeAxis = us-gaap_OtherTradingMember
|
$ 67us-gaap_TradingGainsLosses / us-gaap_DerivativeByNatureAxis = bac_TradingDerivativesMember / us-gaap_IncomeStatementLocationAxis = bac_OperatingIncomeLossandBrokerageCommissionsandAssetManagementFeeRevenueMember / us-gaap_TradingActivityByTypeAxis = us-gaap_OtherTradingMember
|