Quarterly report pursuant to Section 13 or 15(d)

Fair Value Option - Changes in FV of Assets and Liabilities (Details)

v2.4.1.9
Fair Value Option - Changes in FV of Assets and Liabilities (Details) (USD $)
In Millions, unless otherwise specified
3 Months Ended
Mar. 31, 2015
Mar. 31, 2014
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option $ 469us-gaap_FairValueOptionChangesInFairValueGainLoss1 $ (29)us-gaap_FairValueOptionChangesInFairValueGainLoss1
Federal funds sold and securities borrowed or purchased under agreements to resell    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option (64)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellMember
(20)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellMember
Loans reported as trading account assets    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Fair value option, changes in borrower specific credit risk, gains (losses) on assets 8us-gaap_FairValueOptionCreditRiskGainsLossesOnAssets
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueOptionCreditRiskGainsLossesOnAssets
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_TradingAccountAssetsMember
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option (101)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_TradingAccountAssetsMember
34us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_TradingAccountAssetsMember
Trading inventory – other    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option (14)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_TradingInventoryOtherMember
(168)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_TradingInventoryOtherMember
Loans and leases    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Fair value option, changes in borrower specific credit risk, gains (losses) on assets (28)us-gaap_FairValueOptionCreditRiskGainsLossesOnAssets
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_LoansReceivableMember
36us-gaap_FairValueOptionCreditRiskGainsLossesOnAssets
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_LoansReceivableMember
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option (48)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_LoansReceivableMember
57us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_LoansReceivableMember
Loans held-for-sale    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Fair value option, changes in borrower specific credit risk, gains (losses) on assets 39us-gaap_FairValueOptionCreditRiskGainsLossesOnAssets
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_LoansHeldForSaleMember
27us-gaap_FairValueOptionCreditRiskGainsLossesOnAssets
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_LoansHeldForSaleMember
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 208us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_LoansHeldForSaleMember
194us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_LoansHeldForSaleMember
Other assets    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 8us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_OtherAssetsMember
(2)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_OtherAssetsMember
Long-term deposits    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option (9)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_LongTermDepositsMember
4us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_LongTermDepositsMember
Federal funds purchased and securities loaned or sold under agreements to repurchase    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 54us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FederalFundsPurchasedAndSecuritiesSoldUnderAgreementsToRepurchaseMember
(2)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FederalFundsPurchasedAndSecuritiesSoldUnderAgreementsToRepurchaseMember
Unfunded loan commitments    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 118us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_UnfundedLoanCommitmentMember
9us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_UnfundedLoanCommitmentMember
Short-term borrowings    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option (1)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermDebtMember
36us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermDebtMember
Long-term debt    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 318us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_LongTermDebtMember
(171)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_LongTermDebtMember
Trading Account Profits (Losses)    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 111us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
(471)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
Trading Account Profits (Losses) | Federal funds sold and securities borrowed or purchased under agreements to resell    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option (64)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
(20)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
Trading Account Profits (Losses) | Loans reported as trading account assets    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option (101)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
34us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
Trading Account Profits (Losses) | Trading inventory – other    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option (14)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_TradingInventoryOtherMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
(168)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_TradingInventoryOtherMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
Trading Account Profits (Losses) | Loans and leases    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 35us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_LoansReceivableMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
5us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_LoansReceivableMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
Trading Account Profits (Losses) | Loans held-for-sale    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option (47)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_LoansHeldForSaleMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
(1)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_LoansHeldForSaleMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
Trading Account Profits (Losses) | Other assets    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_OtherAssetsMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_OtherAssetsMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
Trading Account Profits (Losses) | Long-term deposits    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option (4)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_LongTermDepositsMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
13us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_LongTermDepositsMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
Trading Account Profits (Losses) | Federal funds purchased and securities loaned or sold under agreements to repurchase    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 54us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FederalFundsPurchasedAndSecuritiesSoldUnderAgreementsToRepurchaseMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
(2)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FederalFundsPurchasedAndSecuritiesSoldUnderAgreementsToRepurchaseMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
Trading Account Profits (Losses) | Unfunded loan commitments    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_UnfundedLoanCommitmentMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_UnfundedLoanCommitmentMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
Trading Account Profits (Losses) | Short-term borrowings    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option (1)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
36us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
Trading Account Profits (Losses) | Long-term debt    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 253us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_LongTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
(368)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_LongTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= bac_TradingGainLossMember
Mortgage Banking Income (Loss)    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 192us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
155us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
Mortgage Banking Income (Loss) | Federal funds sold and securities borrowed or purchased under agreements to resell    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
Mortgage Banking Income (Loss) | Loans reported as trading account assets    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
Mortgage Banking Income (Loss) | Trading inventory – other    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_TradingInventoryOtherMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_TradingInventoryOtherMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
Mortgage Banking Income (Loss) | Loans and leases    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_LoansReceivableMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_LoansReceivableMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
Mortgage Banking Income (Loss) | Loans held-for-sale    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 192us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_LoansHeldForSaleMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
155us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_LoansHeldForSaleMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
Mortgage Banking Income (Loss) | Other assets    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_OtherAssetsMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_OtherAssetsMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
Mortgage Banking Income (Loss) | Long-term deposits    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_LongTermDepositsMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_LongTermDepositsMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
Mortgage Banking Income (Loss) | Federal funds purchased and securities loaned or sold under agreements to repurchase    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FederalFundsPurchasedAndSecuritiesSoldUnderAgreementsToRepurchaseMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FederalFundsPurchasedAndSecuritiesSoldUnderAgreementsToRepurchaseMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
Mortgage Banking Income (Loss) | Unfunded loan commitments    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_UnfundedLoanCommitmentMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_UnfundedLoanCommitmentMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
Mortgage Banking Income (Loss) | Short-term borrowings    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
Mortgage Banking Income (Loss) | Long-term debt    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_LongTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_LongTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= bac_MortgageBankingIncomeLossMember
Other Income (Loss)    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 166us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
287us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
Other Income (Loss) | Federal funds sold and securities borrowed or purchased under agreements to resell    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
Other Income (Loss) | Loans reported as trading account assets    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
Other Income (Loss) | Trading inventory – other    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_TradingInventoryOtherMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_TradingInventoryOtherMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
Other Income (Loss) | Loans and leases    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option (83)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_LoansReceivableMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
52us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_LoansReceivableMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
Other Income (Loss) | Loans held-for-sale    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 63us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_LoansHeldForSaleMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
40us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_LoansHeldForSaleMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
Other Income (Loss) | Other assets    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 8us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_OtherAssetsMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
(2)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_OtherAssetsMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
Other Income (Loss) | Long-term deposits    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option (5)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_LongTermDepositsMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
(9)us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_LongTermDepositsMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
Other Income (Loss) | Federal funds purchased and securities loaned or sold under agreements to repurchase    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FederalFundsPurchasedAndSecuritiesSoldUnderAgreementsToRepurchaseMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FederalFundsPurchasedAndSecuritiesSoldUnderAgreementsToRepurchaseMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
Other Income (Loss) | Unfunded loan commitments    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 118us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_UnfundedLoanCommitmentMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
9us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= bac_UnfundedLoanCommitmentMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
Other Income (Loss) | Short-term borrowings    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option 0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
0us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
Other Income (Loss) | Long-term debt    
Fair Value, Option, Quantitative Disclosures [Line Items]    
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option $ 65us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_LongTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember
$ 197us-gaap_FairValueOptionChangesInFairValueGainLoss1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_LongTermDebtMember
/ us-gaap_IncomeStatementLocationAxis
= us-gaap_OtherOperatingIncomeExpenseMember