Fair Value Measurements - Reconciliation (Details) (USD $)
In Millions, unless otherwise specified |
3 Months Ended | ||
---|---|---|---|
Mar. 31, 2015
|
Mar. 31, 2014
|
Dec. 31, 2014
|
|
Fair Value, Net Derivative Asset (Liability) Measured on Recurring Basis, Unobservable Input Reconciliation [Roll Forward] | |||
Balance, beginning | $ (920)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs | $ (224)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs | |
Gains (Losses) in Earnings | (44)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputsReconciliationGainLossIncludedInEarnings | 14us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputsReconciliationGainLossIncludedInEarnings | |
Gains (Losses) in OCI (2) | 0us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputsReconciliationGainLossIncludedInOtherComprehensiveIncomeLoss | 0us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputsReconciliationGainLossIncludedInOtherComprehensiveIncomeLoss | |
Purchases | 56us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputsReconciliationPurchases | 125us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputsReconciliationPurchases | |
Sales | (176)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputsReconciliationSales | (691)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputsReconciliationSales | |
Issuances | 0us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputsReconciliationIssues | 0us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputsReconciliationIssues | |
Settlements | 25us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputsReconciliationSettlements | (101)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputsReconciliationSettlements | |
Gross Transfers into Level 3 | (46)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputsReconciliationTransfersIntoLevel3 | 12us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputsReconciliationTransfersIntoLevel3 | |
Gross Transfers out of Level 3 | 24us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputsReconciliationTransfersOutOfLevel3 | 26us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputsReconciliationTransfersOutOfLevel3 | |
Balance, ending | (1,081)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs | (839)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs | |
Fair Value, Net Derivative Asset (Liability) Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items] | |||
Gross Derivative Assets | 966,000us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement | 984,800us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement | |
Gross Derivative Liabilities | 960,000us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement | 981,800us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement | |
Level 3 | Recurring | |||
Fair Value, Net Derivative Asset (Liability) Measured on Recurring Basis, Unobservable Input Reconciliation [Roll Forward] | |||
Balance, beginning |
(920)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs / us-gaap_FairValueByFairValueHierarchyLevelAxis = us-gaap_FairValueInputsLevel3Member / us-gaap_FairValueByMeasurementFrequencyAxis = us-gaap_FairValueMeasurementsRecurringMember |
||
Balance, ending |
(1,081)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs / us-gaap_FairValueByFairValueHierarchyLevelAxis = us-gaap_FairValueInputsLevel3Member / us-gaap_FairValueByMeasurementFrequencyAxis = us-gaap_FairValueMeasurementsRecurringMember |
(920)us-gaap_FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisWithUnobservableInputs / us-gaap_FairValueByFairValueHierarchyLevelAxis = us-gaap_FairValueInputsLevel3Member / us-gaap_FairValueByMeasurementFrequencyAxis = us-gaap_FairValueMeasurementsRecurringMember |
|
Fair Value, Net Derivative Asset (Liability) Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items] | |||
Gross Derivative Assets |
7,450us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement / us-gaap_FairValueByFairValueHierarchyLevelAxis = us-gaap_FairValueInputsLevel3Member / us-gaap_FairValueByMeasurementFrequencyAxis = us-gaap_FairValueMeasurementsRecurringMember |
6,900us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement / us-gaap_FairValueByFairValueHierarchyLevelAxis = us-gaap_FairValueInputsLevel3Member / us-gaap_FairValueByMeasurementFrequencyAxis = us-gaap_FairValueMeasurementsRecurringMember |
6,851us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement / us-gaap_FairValueByFairValueHierarchyLevelAxis = us-gaap_FairValueInputsLevel3Member / us-gaap_FairValueByMeasurementFrequencyAxis = us-gaap_FairValueMeasurementsRecurringMember |
Gross Derivative Liabilities |
8,531us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement / us-gaap_FairValueByFairValueHierarchyLevelAxis = us-gaap_FairValueInputsLevel3Member / us-gaap_FairValueByMeasurementFrequencyAxis = us-gaap_FairValueMeasurementsRecurringMember |
7,700us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement / us-gaap_FairValueByFairValueHierarchyLevelAxis = us-gaap_FairValueInputsLevel3Member / us-gaap_FairValueByMeasurementFrequencyAxis = us-gaap_FairValueMeasurementsRecurringMember |
7,771us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement / us-gaap_FairValueByFairValueHierarchyLevelAxis = us-gaap_FairValueInputsLevel3Member / us-gaap_FairValueByMeasurementFrequencyAxis = us-gaap_FairValueMeasurementsRecurringMember |
Corporate securities, trading loans and other | |||
Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward] | |||
Balance, beginning |
(36)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
(35)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Gains (Losses) in Earnings |
1us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
1us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Gains (Losses) in OCI |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInOtherComprehensiveIncome / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInOtherComprehensiveIncome / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Purchases |
2us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySales / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
3us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySales / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Sales |
(8)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
(7)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Issuances |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Settlements |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
||
Gross Transfers into Level 3 |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersIntoLevel3 / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersIntoLevel3 / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Gross Transfers out of Level 3 |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersOutOfLevel3 / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
2us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersOutOfLevel3 / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Balance, ending |
(41)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
(36)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue / us-gaap_FairValueByLiabilityClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Short-term borrowings | |||
Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward] | |||
Balance, beginning |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue / us-gaap_FairValueByLiabilityClassAxis = us-gaap_ShortTermDebtMember |
||
Gains (Losses) in Earnings |
5us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings / us-gaap_FairValueByLiabilityClassAxis = us-gaap_ShortTermDebtMember |
||
Gains (Losses) in OCI |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInOtherComprehensiveIncome / us-gaap_FairValueByLiabilityClassAxis = us-gaap_ShortTermDebtMember |
||
Purchases |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySales / us-gaap_FairValueByLiabilityClassAxis = us-gaap_ShortTermDebtMember |
||
Sales |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases / us-gaap_FairValueByLiabilityClassAxis = us-gaap_ShortTermDebtMember |
||
Issuances |
(21)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues / us-gaap_FairValueByLiabilityClassAxis = us-gaap_ShortTermDebtMember |
||
Settlements |
1us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements / us-gaap_FairValueByLiabilityClassAxis = us-gaap_ShortTermDebtMember |
||
Gross Transfers into Level 3 |
(4)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersIntoLevel3 / us-gaap_FairValueByLiabilityClassAxis = us-gaap_ShortTermDebtMember |
||
Gross Transfers out of Level 3 |
4us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersOutOfLevel3 / us-gaap_FairValueByLiabilityClassAxis = us-gaap_ShortTermDebtMember |
||
Balance, ending |
(15)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue / us-gaap_FairValueByLiabilityClassAxis = us-gaap_ShortTermDebtMember |
||
Accrued expenses and other liabilities | |||
Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward] | |||
Balance, beginning |
(10)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
(10)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
|
Gains (Losses) in Earnings |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
1us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
|
Gains (Losses) in OCI |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInOtherComprehensiveIncome / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInOtherComprehensiveIncome / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
|
Purchases |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySales / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
||
Sales |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
|
Issuances |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
|
Settlements |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
|
Gross Transfers into Level 3 |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersIntoLevel3 / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersIntoLevel3 / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
|
Gross Transfers out of Level 3 |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersOutOfLevel3 / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
1us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersOutOfLevel3 / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
|
Balance, ending |
(10)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
(8)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue / us-gaap_FairValueByLiabilityClassAxis = bac_AccruedExpensesandOtherLiabilitiesMember |
|
Long-term debt | |||
Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward] | |||
Balance, beginning |
(2,362)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
(1,990)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
|
Gains (Losses) in Earnings |
4us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
(67)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
|
Gains (Losses) in OCI |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInOtherComprehensiveIncome / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInOtherComprehensiveIncome / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
|
Purchases |
132us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySales / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
46us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySales / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
|
Sales |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
|
Issuances |
(90)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
(9)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
|
Settlements |
97us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
119us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
|
Gross Transfers into Level 3 |
(713)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersIntoLevel3 / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
(144)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersIntoLevel3 / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
|
Gross Transfers out of Level 3 |
126us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersOutOfLevel3 / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
204us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersOutOfLevel3 / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
|
Balance, ending |
(2,806)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
(1,841)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue / us-gaap_FairValueByLiabilityClassAxis = us-gaap_LongTermDebtMember |
|
Corporate securities, trading loans and other | |||
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward] | |||
Balance, beginning |
3,270us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
3,559us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Gains (Losses) in Earnings |
(21)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
122us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Gains (Losses) in OCI (2) |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Purchases |
139us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
286us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Sales |
(95)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
(354)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Issuances |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Settlements |
(435)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
(238)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Gross Transfers into Level 3 |
171us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
148us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Gross Transfers out of Level 3 |
(269)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
(906)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Balance, ending |
2,760us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
2,617us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_CorporateSecuritiesTradingLoansAndOtherMember |
|
Equity securities | |||
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward] | |||
Balance, beginning |
352us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
386us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
|
Gains (Losses) in Earnings |
3us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
19us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
|
Gains (Losses) in OCI (2) |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
|
Purchases |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
30us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
|
Sales |
(1)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
(29)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
|
Issuances |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
|
Settlements |
(5)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
|
Gross Transfers into Level 3 |
9us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
7us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
|
Gross Transfers out of Level 3 |
(18)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
(70)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
|
Balance, ending |
340us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
343us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_EquitySecuritiesMember |
|
Non-U.S. sovereign debt | |||
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward] | |||
Balance, beginning |
574us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_ForeignGovernmentDebtSecuritiesMember |
468us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_ForeignGovernmentDebtSecuritiesMember |
|
Gains (Losses) in Earnings |
85us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = us-gaap_ForeignGovernmentDebtSecuritiesMember |
55us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = us-gaap_ForeignGovernmentDebtSecuritiesMember |
|
Gains (Losses) in OCI (2) |
(109)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = us-gaap_ForeignGovernmentDebtSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = us-gaap_ForeignGovernmentDebtSecuritiesMember |
|
Purchases |
2us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = us-gaap_ForeignGovernmentDebtSecuritiesMember |
23us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = us-gaap_ForeignGovernmentDebtSecuritiesMember |
|
Sales |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = us-gaap_ForeignGovernmentDebtSecuritiesMember |
(6)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = us-gaap_ForeignGovernmentDebtSecuritiesMember |
|
Issuances |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = us-gaap_ForeignGovernmentDebtSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = us-gaap_ForeignGovernmentDebtSecuritiesMember |
|
Settlements |
(44)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = us-gaap_ForeignGovernmentDebtSecuritiesMember |
(6)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = us-gaap_ForeignGovernmentDebtSecuritiesMember |
|
Gross Transfers out of Level 3 |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_ForeignGovernmentDebtSecuritiesMember |
(1)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_ForeignGovernmentDebtSecuritiesMember |
|
Balance, ending |
508us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_ForeignGovernmentDebtSecuritiesMember |
533us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_ForeignGovernmentDebtSecuritiesMember |
|
Mortgage trading loans and ABS | |||
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward] | |||
Balance, beginning |
2,063us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
4,631us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
|
Gains (Losses) in Earnings |
60us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
78us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
|
Gains (Losses) in OCI (2) |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
||
Purchases |
319us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
366us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
|
Sales |
(249)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
(552)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
|
Issuances |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
|
Settlements |
(83)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
(224)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
|
Gross Transfers into Level 3 |
9us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
|
Gross Transfers out of Level 3 |
(13)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
(12)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
|
Balance, ending |
2,106us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
4,287us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_MortgageTradingLoansAndAssetBackedSecuritiesMember |
|
Trading Securities | |||
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward] | |||
Balance, beginning |
6,259us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
9,044us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
|
Gains (Losses) in Earnings |
127us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
274us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
|
Gains (Losses) in OCI (2) |
(109)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
|
Purchases |
460us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
705us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
|
Sales |
(345)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
(941)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
|
Issuances |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
|
Settlements |
(567)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
(468)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
|
Gross Transfers into Level 3 |
189us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
155us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
|
Gross Transfers out of Level 3 |
(300)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
(989)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
|
Balance, ending |
5,714us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
7,780us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_TradingAccountAssetsMember |
|
Non-agency residential | |||
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward] | |||
Balance, beginning |
279us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
||
Gains (Losses) in Earnings |
(19)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
||
Gains (Losses) in OCI (2) |
(2)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
||
Purchases |
21us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
||
Sales |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
||
Issuances |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
||
Settlements |
(9)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
||
Gross Transfers into Level 3 |
132us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
||
Gross Transfers out of Level 3 |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
||
Balance, ending |
402us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
||
Non-U.S. securities | |||
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward] | |||
Balance, beginning |
10us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_ForeignSecuritiesMember |
107us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_ForeignSecuritiesMember |
|
Gains (Losses) in Earnings |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = bac_ForeignSecuritiesMember |
||
Gains (Losses) in OCI (2) |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = bac_ForeignSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = bac_ForeignSecuritiesMember |
|
Purchases |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = bac_ForeignSecuritiesMember |
||
Sales |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = bac_ForeignSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = bac_ForeignSecuritiesMember |
|
Issuances |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = bac_ForeignSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = bac_ForeignSecuritiesMember |
|
Settlements |
(1)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = bac_ForeignSecuritiesMember |
(107)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = bac_ForeignSecuritiesMember |
|
Gross Transfers into Level 3 |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = bac_ForeignSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = bac_ForeignSecuritiesMember |
|
Gross Transfers out of Level 3 |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = bac_ForeignSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = bac_ForeignSecuritiesMember |
|
Balance, ending |
9us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_ForeignSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_ForeignSecuritiesMember |
|
Other taxable securities, substantially all asset-backed securities | |||
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward] | |||
Balance, beginning |
1,667us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
3,847us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
|
Gains (Losses) in Earnings |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
8us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
|
Gains (Losses) in OCI (2) |
(2)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
(2)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
|
Purchases |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
47us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
|
Sales |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
|
Issuances |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
|
Settlements |
(42)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
(463)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
|
Gross Transfers into Level 3 |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
|
Gross Transfers out of Level 3 |
(933)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
|
Balance, ending |
690us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
3,437us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_OtherTaxableSecuritiesMember |
|
Tax-exempt securities | |||
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward] | |||
Balance, beginning |
599us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_TaxExemptSecuritiesMember |
806us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_TaxExemptSecuritiesMember |
|
Gains (Losses) in Earnings |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = bac_TaxExemptSecuritiesMember |
1us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = bac_TaxExemptSecuritiesMember |
|
Gains (Losses) in OCI (2) |
(3)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = bac_TaxExemptSecuritiesMember |
1us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = bac_TaxExemptSecuritiesMember |
|
Purchases |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = bac_TaxExemptSecuritiesMember |
||
Sales |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = bac_TaxExemptSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = bac_TaxExemptSecuritiesMember |
|
Issuances |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = bac_TaxExemptSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = bac_TaxExemptSecuritiesMember |
|
Settlements |
(13)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = bac_TaxExemptSecuritiesMember |
(25)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = bac_TaxExemptSecuritiesMember |
|
Gross Transfers into Level 3 |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = bac_TaxExemptSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = bac_TaxExemptSecuritiesMember |
|
Gross Transfers out of Level 3 |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = bac_TaxExemptSecuritiesMember |
||
Balance, ending |
583us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_TaxExemptSecuritiesMember |
783us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_TaxExemptSecuritiesMember |
|
Available-for-sale Securities | |||
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward] | |||
Balance, beginning |
2,555us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
4,760us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
|
Gains (Losses) in Earnings |
(19)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
9us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
|
Gains (Losses) in OCI (2) |
(7)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
(1)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
|
Purchases |
21us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
47us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
|
Sales |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
|
Issuances |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
||
Settlements |
(65)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
(595)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
|
Gross Transfers into Level 3 |
132us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
|
Gross Transfers out of Level 3 |
(933)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
|
Balance, ending |
1,684us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
4,220us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_AvailableforsaleSecuritiesMember |
|
Loans and leases | |||
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward] | |||
Balance, beginning |
1,983us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_LoansReceivableMember |
3,057us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_LoansReceivableMember |
|
Gains (Losses) in Earnings |
15us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = us-gaap_LoansReceivableMember |
32us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = us-gaap_LoansReceivableMember |
|
Gains (Losses) in OCI (2) |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = us-gaap_LoansReceivableMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = us-gaap_LoansReceivableMember |
|
Purchases |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = us-gaap_LoansReceivableMember |
||
Sales |
(1)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = us-gaap_LoansReceivableMember |
(3)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = us-gaap_LoansReceivableMember |
|
Issuances |
689us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = us-gaap_LoansReceivableMember |
||
Settlements |
(43)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = us-gaap_LoansReceivableMember |
(723)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = us-gaap_LoansReceivableMember |
|
Gross Transfers into Level 3 |
6us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_LoansReceivableMember |
6us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_LoansReceivableMember |
|
Gross Transfers out of Level 3 |
(6)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_LoansReceivableMember |
(5)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_LoansReceivableMember |
|
Balance, ending |
1,954us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_LoansReceivableMember |
3,053us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_LoansReceivableMember |
|
Mortgage servicing rights | |||
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward] | |||
Balance, beginning |
3,530us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_ServicingContractsMember |
5,042us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_ServicingContractsMember |
|
Gains (Losses) in Earnings |
(85)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = us-gaap_ServicingContractsMember |
(290)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = us-gaap_ServicingContractsMember |
|
Gains (Losses) in OCI (2) |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = us-gaap_ServicingContractsMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = us-gaap_ServicingContractsMember |
|
Purchases |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = us-gaap_ServicingContractsMember |
||
Sales |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = us-gaap_ServicingContractsMember |
(20)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = us-gaap_ServicingContractsMember |
|
Issuances |
179us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = us-gaap_ServicingContractsMember |
265us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = us-gaap_ServicingContractsMember |
|
Settlements |
(230)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = us-gaap_ServicingContractsMember |
(232)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = us-gaap_ServicingContractsMember |
|
Gross Transfers into Level 3 |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_ServicingContractsMember |
||
Gross Transfers out of Level 3 |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_ServicingContractsMember |
||
Balance, ending |
3,394us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_ServicingContractsMember |
4,765us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_ServicingContractsMember |
|
Loans held-for-sale | |||
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward] | |||
Balance, beginning |
173us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
929us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
|
Gains (Losses) in Earnings |
(70)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
12us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
|
Gains (Losses) in OCI (2) |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
|
Purchases |
406us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
|
Sales |
(82)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
(3)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
|
Issuances |
21us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
|
Settlements |
(6)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
(201)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
|
Gross Transfers into Level 3 |
138us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
|
Gross Transfers out of Level 3 |
(37)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
(1)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
|
Balance, ending |
543us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
736us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = bac_LoansHeldForSaleMember |
|
Other assets | |||
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward] | |||
Balance, beginning |
911us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
1,669us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
|
Gains (Losses) in Earnings |
10us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
(60)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1 / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
|
Gains (Losses) in OCI (2) |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
|
Purchases |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
|
Sales |
(31)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
(269)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
|
Issuances |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
|
Settlements |
(9)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
(208)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
|
Gross Transfers into Level 3 |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
||
Gross Transfers out of Level 3 |
(34)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3 / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
|
Balance, ending |
$ 847us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
$ 1,132us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue / us-gaap_FairValueByAssetClassAxis = us-gaap_OtherAssetsMember |
X | ||||||||||
- Definition
Fair value, before effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets not subject to a master netting arrangement and elected not to be offset. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Fair value, before effects of master netting arrangements, of a financial liability or contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes liabilities not subject to a master netting arrangement and elected not to be offset. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Definition
Amount of transfers of financial instrument classified as a liability into level 3 of the fair value hierarchy. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of transfers of financial instrument classified as a liability out of level 3 of the fair value hierarchy. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of gain (loss) recognized in the income statement for financial instrument classified as an asset measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of gain (loss) recognized in other comprehensive income (loss) for financial instrument classified as an asset measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of issuances of financial instrument classified as an asset measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of purchases of financial instrument classified as an asset measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of sale of financial instrument classified as an asset measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of settlement of financial instrument classified as an asset measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of transfer of financial instrument classified as an asset into level 3 of the fair value hierarchy. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of transfers of financial instrument classified as an asset out of level 3 of the fair value hierarchy. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Fair value of financial instrument classified as an asset measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of gain (loss) recognized on the income statement for financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of gain (loss) recognized in other comprehensive income (loss) for financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of issuances of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of purchases of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of sales of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of settlements of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Fair value of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Definition
Amount of gain (loss) recognized in the income statement of financial instrument classified as a derivative asset (liability) after deduction of derivative liability (asset), measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of gain (loss) recognized in other comprehensive income (loss) of financial instrument classified as a derivative asset (liability) after deduction of derivative liability (asset), measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of issuances of financial instrument classified as a derivative asset (liability) after deduction of derivative liability (asset), measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of purchases of financial instrument classified as a derivative asset (liability) after deduction of derivative liability (asset), measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of sales of financial instrument classified as a derivative asset (liability) after deduction of derivative liability (asset), measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of settlements of financial instrument classified as a derivative asset (liability) after deduction of derivative liability, measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of transfers of financial instrument classified as a derivative asset (liability) after deduction of derivative liability (asset) into level 3 of the fair value hierarchy. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of transfers of financial instrument classified as derivative asset (liability) after deduction of derivative liability (asset) out of level 3 of the fair value hierarchy. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Fair value of financial instrument classified as derivative asset (liability) after deduction of derivative liability (asset), measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|