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