Securities - Gross Unrealized Losses (Details) (USD $)
In Millions, unless otherwise specified |
Mar. 31, 2015
|
Dec. 31, 2014
|
---|---|---|
Debt securities | ||
Available-for-sale Securities, Continuous Unrealized Loss Position [Abstract] | ||
Less than Twelve Months, Fair Value |
$ 22,929us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
$ 16,346us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
Less than Twelve Months, Gross Unrealized Losses |
(83)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
(99)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
Twelve Months or Longer, Fair Value |
21,635us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
49,554us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
Twelve Months or Longer, Gross Unrealized Losses |
(328)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
(736)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
Total, Fair Value |
44,564us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
65,900us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
Total, Gross Unrealized Losses |
(411)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
(835)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
Temporarily impaired AFS debt securities | Debt securities | ||
Available-for-sale Securities, Continuous Unrealized Loss Position [Abstract] | ||
Less than Twelve Months, Fair Value |
22,628us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
15,791us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
Less than Twelve Months, Gross Unrealized Losses |
(70)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
(66)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
Twelve Months or Longer, Fair Value |
21,635us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
49,554us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
Twelve Months or Longer, Gross Unrealized Losses |
(328)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
(736)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
Total, Fair Value |
44,263us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
65,345us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
Total, Gross Unrealized Losses |
(398)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
(802)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_DebtSecuritiesMember |
Temporarily impaired AFS debt securities | U.S. Treasury and agency securities | ||
Available-for-sale Securities, Continuous Unrealized Loss Position [Abstract] | ||
Less than Twelve Months, Fair Value |
289us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_USTreasuryAndGovernmentMember |
10,121us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_USTreasuryAndGovernmentMember |
Less than Twelve Months, Gross Unrealized Losses |
(1)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_USTreasuryAndGovernmentMember |
(22)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_USTreasuryAndGovernmentMember |
Twelve Months or Longer, Fair Value |
300us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_USTreasuryAndGovernmentMember |
667us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_USTreasuryAndGovernmentMember |
Twelve Months or Longer, Gross Unrealized Losses |
(2)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_USTreasuryAndGovernmentMember |
(10)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_USTreasuryAndGovernmentMember |
Total, Fair Value |
589us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_USTreasuryAndGovernmentMember |
10,788us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_USTreasuryAndGovernmentMember |
Total, Gross Unrealized Losses |
(3)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_USTreasuryAndGovernmentMember |
(32)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_USTreasuryAndGovernmentMember |
Temporarily impaired AFS debt securities | Agency | ||
Available-for-sale Securities, Continuous Unrealized Loss Position [Abstract] | ||
Less than Twelve Months, Fair Value |
19,107us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyMember |
1,366us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyMember |
Less than Twelve Months, Gross Unrealized Losses |
(51)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyMember |
(8)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyMember |
Twelve Months or Longer, Fair Value |
17,169us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyMember |
43,118us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyMember |
Twelve Months or Longer, Gross Unrealized Losses |
(224)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyMember |
(585)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyMember |
Total, Fair Value |
36,276us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyMember |
44,484us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyMember |
Total, Gross Unrealized Losses |
(275)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyMember |
(593)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyMember |
Temporarily impaired AFS debt securities | Agency-collateralized mortgage obligations | ||
Available-for-sale Securities, Continuous Unrealized Loss Position [Abstract] | ||
Less than Twelve Months, Fair Value |
1,266us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember |
2,242us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember |
Less than Twelve Months, Gross Unrealized Losses |
(6)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember |
(19)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember |
Twelve Months or Longer, Fair Value |
1,981us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember |
3,075us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember |
Twelve Months or Longer, Gross Unrealized Losses |
(25)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember |
(60)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember |
Total, Fair Value |
3,247us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember |
5,317us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember |
Total, Gross Unrealized Losses |
(31)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember |
(79)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember |
Temporarily impaired AFS debt securities | Non-agency residential | ||
Available-for-sale Securities, Continuous Unrealized Loss Position [Abstract] | ||
Less than Twelve Months, Fair Value |
660us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
307us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
Less than Twelve Months, Gross Unrealized Losses |
(5)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
(3)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
Twelve Months or Longer, Fair Value |
77us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
809us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
Twelve Months or Longer, Gross Unrealized Losses |
(42)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
(41)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
Total, Fair Value |
737us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
1,116us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
Total, Gross Unrealized Losses |
(47)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
(44)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
Temporarily impaired AFS debt securities | Commercial | ||
Available-for-sale Securities, Continuous Unrealized Loss Position [Abstract] | ||
Less than Twelve Months, Fair Value |
14us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_CommercialMortgageBackedSecuritiesMember |
|
Less than Twelve Months, Gross Unrealized Losses |
(1)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_CommercialMortgageBackedSecuritiesMember |
|
Twelve Months or Longer, Fair Value |
0us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_CommercialMortgageBackedSecuritiesMember |
|
Twelve Months or Longer, Gross Unrealized Losses |
0us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_CommercialMortgageBackedSecuritiesMember |
|
Total, Fair Value |
14us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_CommercialMortgageBackedSecuritiesMember |
|
Total, Gross Unrealized Losses |
(1)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_CommercialMortgageBackedSecuritiesMember |
|
Temporarily impaired AFS debt securities | Non-U.S. securities | ||
Available-for-sale Securities, Continuous Unrealized Loss Position [Abstract] | ||
Less than Twelve Months, Fair Value |
19us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_ForeignSecuritiesMember |
157us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_ForeignSecuritiesMember |
Less than Twelve Months, Gross Unrealized Losses |
(2)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_ForeignSecuritiesMember |
(9)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_ForeignSecuritiesMember |
Twelve Months or Longer, Fair Value |
30us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_ForeignSecuritiesMember |
32us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_ForeignSecuritiesMember |
Twelve Months or Longer, Gross Unrealized Losses |
(1)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_ForeignSecuritiesMember |
(2)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_ForeignSecuritiesMember |
Total, Fair Value |
49us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_ForeignSecuritiesMember |
189us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_ForeignSecuritiesMember |
Total, Gross Unrealized Losses |
(3)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_ForeignSecuritiesMember |
(11)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_ForeignSecuritiesMember |
Temporarily impaired AFS debt securities | Corporate/Agency bonds | ||
Available-for-sale Securities, Continuous Unrealized Loss Position [Abstract] | ||
Less than Twelve Months, Fair Value |
0us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_CorporateandAgencyBondsMember |
43us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_CorporateandAgencyBondsMember |
Less than Twelve Months, Gross Unrealized Losses |
0us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_CorporateandAgencyBondsMember |
(1)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_CorporateandAgencyBondsMember |
Twelve Months or Longer, Fair Value |
93us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_CorporateandAgencyBondsMember |
93us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_CorporateandAgencyBondsMember |
Twelve Months or Longer, Gross Unrealized Losses |
(1)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_CorporateandAgencyBondsMember |
(1)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_CorporateandAgencyBondsMember |
Total, Fair Value |
93us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_CorporateandAgencyBondsMember |
136us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_CorporateandAgencyBondsMember |
Total, Gross Unrealized Losses |
(1)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_CorporateandAgencyBondsMember |
(2)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_CorporateandAgencyBondsMember |
Temporarily impaired AFS debt securities | Other taxable securities, substantially all asset-backed securities | ||
Available-for-sale Securities, Continuous Unrealized Loss Position [Abstract] | ||
Less than Twelve Months, Fair Value |
679us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_OtherTaxableSecuritiesMember |
575us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_OtherTaxableSecuritiesMember |
Less than Twelve Months, Gross Unrealized Losses |
(3)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_OtherTaxableSecuritiesMember |
(3)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_OtherTaxableSecuritiesMember |
Twelve Months or Longer, Fair Value |
981us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_OtherTaxableSecuritiesMember |
1,080us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_OtherTaxableSecuritiesMember |
Twelve Months or Longer, Gross Unrealized Losses |
(15)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_OtherTaxableSecuritiesMember |
(19)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_OtherTaxableSecuritiesMember |
Total, Fair Value |
1,660us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_OtherTaxableSecuritiesMember |
1,655us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_OtherTaxableSecuritiesMember |
Total, Gross Unrealized Losses |
(18)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_OtherTaxableSecuritiesMember |
(22)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_OtherTaxableSecuritiesMember |
Temporarily impaired AFS debt securities | Total taxable securities | ||
Available-for-sale Securities, Continuous Unrealized Loss Position [Abstract] | ||
Less than Twelve Months, Fair Value |
22,034us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxableSecuritiesMember |
14,811us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxableSecuritiesMember |
Less than Twelve Months, Gross Unrealized Losses |
(69)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxableSecuritiesMember |
(65)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxableSecuritiesMember |
Twelve Months or Longer, Fair Value |
20,631us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxableSecuritiesMember |
48,874us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxableSecuritiesMember |
Twelve Months or Longer, Gross Unrealized Losses |
(310)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxableSecuritiesMember |
(718)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxableSecuritiesMember |
Total, Fair Value |
42,665us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxableSecuritiesMember |
63,685us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxableSecuritiesMember |
Total, Gross Unrealized Losses |
(379)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxableSecuritiesMember |
(783)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxableSecuritiesMember |
Temporarily impaired AFS debt securities | Tax-exempt securities | ||
Available-for-sale Securities, Continuous Unrealized Loss Position [Abstract] | ||
Less than Twelve Months, Fair Value |
594us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxExemptSecuritiesMember |
980us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxExemptSecuritiesMember |
Less than Twelve Months, Gross Unrealized Losses |
(1)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxExemptSecuritiesMember |
(1)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxExemptSecuritiesMember |
Twelve Months or Longer, Fair Value |
1,004us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxExemptSecuritiesMember |
680us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxExemptSecuritiesMember |
Twelve Months or Longer, Gross Unrealized Losses |
(18)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxExemptSecuritiesMember |
(18)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxExemptSecuritiesMember |
Total, Fair Value |
1,598us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxExemptSecuritiesMember |
1,660us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxExemptSecuritiesMember |
Total, Gross Unrealized Losses |
(19)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxExemptSecuritiesMember |
(19)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_TemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = bac_TaxExemptSecuritiesMember |
Other-than-temporarily impaired AFS debt securities | Non-agency residential | ||
Available-for-sale Securities, Continuous Unrealized Loss Position [Abstract] | ||
Less than Twelve Months, Fair Value |
301us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_OtherThanTemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
555us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue / bac_ImpairmentTypeAxis = bac_OtherThanTemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
Less than Twelve Months, Gross Unrealized Losses |
(13)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_OtherThanTemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
(33)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss / bac_ImpairmentTypeAxis = bac_OtherThanTemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
Twelve Months or Longer, Fair Value |
0us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_OtherThanTemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
0us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue / bac_ImpairmentTypeAxis = bac_OtherThanTemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
Twelve Months or Longer, Gross Unrealized Losses |
0us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_OtherThanTemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
0us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss / bac_ImpairmentTypeAxis = bac_OtherThanTemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
Total, Fair Value |
301us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_OtherThanTemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
555us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue / bac_ImpairmentTypeAxis = bac_OtherThanTemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
Total, Gross Unrealized Losses |
$ (13)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_OtherThanTemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
$ (33)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss / bac_ImpairmentTypeAxis = bac_OtherThanTemporarilyImpairedMember / us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis = us-gaap_ResidentialMortgageBackedSecuritiesMember |
X | ||||||||||
- Definition
Amount of accumulated unrealized loss on investments in debt and equity securities classified as available-for-sale that have been in a continuous loss position for twelve months or longer. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Details
|
X | ||||||||||
- Definition
Amount of accumulated unrealized loss on investments in debt and equity securities classified as available-for-sale in a continuous loss position. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
This item represents the aggregate fair value of investments in debt and equity securities in an unrealized loss position which are categorized neither as held-to-maturity nor trading securities. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of accumulated unrealized loss on investments in debt and equity securities classified as available-for-sale that have been in a continuous loss position for less than twelve months. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
This item represents the aggregate fair value of investments in debt and equity securities categorized neither as held-to-maturity nor trading securities that have been in a continuous unrealized loss position for less than twelve months. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
This item represents the aggregate fair value of investments in debt and equity securities categorized neither as held-to-maturity nor trading securities that have been in a continuous unrealized loss position for twelve months or longer. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|