Fair Value Option - Changes in FV of Assets and Liabilities (Details) (USD $) In Millions, unless otherwise specified
|
12 Months Ended |
Dec. 31, 2014
|
Dec. 31, 2013
|
Dec. 31, 2012
|
Fair Value, Option, Quantitative Disclosures [Line Items] |
|
|
|
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option |
$ 2,395us-gaap_FairValueOptionChangesInFairValueGainLoss1
|
$ 1,385us-gaap_FairValueOptionChangesInFairValueGainLoss1
|
$ (1,756)us-gaap_FairValueOptionChangesInFairValueGainLoss1
|
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 |
(87)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_TradingAccountAssetsMember
|
83us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_TradingAccountAssetsMember
|
232us-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 |
1,091us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_TradingInventoryOtherMember
|
1,355us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_TradingInventoryOtherMember
|
659us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_TradingInventoryOtherMember
|
Loans and leases |
|
|
|
Fair Value, Option, Quantitative Disclosures [Line Items] |
|
|
|
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option |
45us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_LoansReceivableMember
|
174us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_LoansReceivableMember
|
559us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_LoansReceivableMember
|
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 |
825us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LoansHeldForSaleMember
|
1,048us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LoansHeldForSaleMember
|
3,313us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LoansHeldForSaleMember
|
Securities financing agreements |
|
|
|
Fair Value, Option, Quantitative Disclosures [Line Items] |
|
|
|
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option |
(110)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_SecuritiesFinancingTransactionFairValueMember
|
(80)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_SecuritiesFinancingTransactionFairValueMember
|
(90)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_SecuritiesFinancingTransactionFairValueMember
|
Other assets |
|
|
|
Fair Value, Option, Quantitative Disclosures [Line Items] |
|
|
|
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option |
|
(77)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_OtherAssetsMember
|
12us-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 |
(3)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LongTermDepositsMember
|
114us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LongTermDepositsMember
|
29us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LongTermDepositsMember
|
Asset-backed securities |
|
|
|
Fair Value, Option, Quantitative Disclosures [Line Items] |
|
|
|
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option |
|
(91)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_AssetBackedSecuritiesMember
|
(180)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_AssetBackedSecuritiesMember
|
Unfunded loan commitments |
|
|
|
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 = bac_UnfundedLoanCommitmentMember
|
180us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_UnfundedLoanCommitmentMember
|
704us-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 |
52us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_ShortTermDebtMember
|
(70)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_ShortTermDebtMember
|
1us-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 |
646us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_LongTermDebtMember
|
(1,251)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_LongTermDebtMember
|
(6,995)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 |
1,128us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
695us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
(994)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / 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 |
(87)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_TradingAccountAssetsMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
83us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_TradingAccountAssetsMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
232us-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 |
1,091us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_TradingInventoryOtherMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
1,355us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_TradingInventoryOtherMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
659us-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 |
(24)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_LoansReceivableMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
(28)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_LoansReceivableMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
17us-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 |
(56)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LoansHeldForSaleMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
7us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LoansHeldForSaleMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
75us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LoansHeldForSaleMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
Trading Account Profits (Losses) | Securities financing agreements |
|
|
|
Fair Value, Option, Quantitative Disclosures [Line Items] |
|
|
|
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option |
(110)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_SecuritiesFinancingTransactionFairValueMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
(80)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_SecuritiesFinancingTransactionFairValueMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
(90)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_SecuritiesFinancingTransactionFairValueMember / 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 |
23us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LongTermDepositsMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
30us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LongTermDepositsMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
0us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LongTermDepositsMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
Trading Account Profits (Losses) | Asset-backed securities |
|
|
|
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_AssetBackedSecuritiesMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
0us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_AssetBackedSecuritiesMember / 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
|
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 |
52us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_ShortTermDebtMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
(70)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_ShortTermDebtMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
1us-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 |
239us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_LongTermDebtMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
(602)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_LongTermDebtMember / us-gaap_IncomeStatementLocationAxis = bac_TradingGainLossMember
|
(1,888)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 |
798us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_IncomeStatementLocationAxis = bac_MortgageBankingIncomeLossMember
|
837us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_IncomeStatementLocationAxis = bac_MortgageBankingIncomeLossMember
|
2,868us-gaap_FairValueOptionChangesInFairValueGainLoss1 / 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
|
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
|
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
|
(38)us-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 |
798us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LoansHeldForSaleMember / us-gaap_IncomeStatementLocationAxis = bac_MortgageBankingIncomeLossMember
|
966us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LoansHeldForSaleMember / us-gaap_IncomeStatementLocationAxis = bac_MortgageBankingIncomeLossMember
|
3,048us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LoansHeldForSaleMember / us-gaap_IncomeStatementLocationAxis = bac_MortgageBankingIncomeLossMember
|
Mortgage Banking Income (Loss) | Securities financing agreements |
|
|
|
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_SecuritiesFinancingTransactionFairValueMember / us-gaap_IncomeStatementLocationAxis = bac_MortgageBankingIncomeLossMember
|
0us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_SecuritiesFinancingTransactionFairValueMember / us-gaap_IncomeStatementLocationAxis = bac_MortgageBankingIncomeLossMember
|
0us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_SecuritiesFinancingTransactionFairValueMember / 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
|
0us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LongTermDepositsMember / us-gaap_IncomeStatementLocationAxis = bac_MortgageBankingIncomeLossMember
|
Mortgage Banking Income (Loss) | Asset-backed securities |
|
|
|
Fair Value, Option, Quantitative Disclosures [Line Items] |
|
|
|
Gains (Losses) Relating to Assets and Liabilities Accounted for Under the Fair Value Option |
|
(91)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_AssetBackedSecuritiesMember / us-gaap_IncomeStatementLocationAxis = bac_MortgageBankingIncomeLossMember
|
(180)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_AssetBackedSecuritiesMember / 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
|
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
|
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
|
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 |
469us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|
(147)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|
(3,630)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / 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
|
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
|
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 |
69us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_LoansReceivableMember / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|
240us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_LoansReceivableMember / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|
542us-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 |
83us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LoansHeldForSaleMember / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|
75us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LoansHeldForSaleMember / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|
190us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LoansHeldForSaleMember / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|
Other Income (Loss) | Securities financing agreements |
|
|
|
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_SecuritiesFinancingTransactionFairValueMember / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|
0us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_SecuritiesFinancingTransactionFairValueMember / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|
0us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_SecuritiesFinancingTransactionFairValueMember / 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 |
|
(77)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_OtherAssetsMember / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|
12us-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 |
(26)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LongTermDepositsMember / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|
84us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LongTermDepositsMember / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|
29us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_LongTermDepositsMember / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|
Other Income (Loss) | Asset-backed securities |
|
|
|
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_AssetBackedSecuritiesMember / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|
0us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_AssetBackedSecuritiesMember / 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 |
(64)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_UnfundedLoanCommitmentMember / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|
180us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = bac_UnfundedLoanCommitmentMember / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|
704us-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
|
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 |
$ 407us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_LongTermDebtMember / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|
$ (649)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_LongTermDebtMember / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|
$ (5,107)us-gaap_FairValueOptionChangesInFairValueGainLoss1 / us-gaap_EligibleItemOrGroupForFairValueOptionAxis = us-gaap_LongTermDebtMember / us-gaap_IncomeStatementLocationAxis = us-gaap_OtherOperatingIncomeExpenseMember
|