|
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
|