Annual report pursuant to Section 13 and 15(d)

Securities - Gross Unrealized Losses (Details)

v2.4.1.9
Securities - Gross Unrealized Losses (Details) (USD $)
In Millions, unless otherwise specified
Dec. 31, 2014
Dec. 31, 2013
Debt securities    
Available-for-sale Securities, Continuous Unrealized Loss Position [Abstract]    
Less than Twelve Months, Fair Value $ 16,346us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
$ 154,358us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
Less than Twelve Months, Gross Unrealized Losses (99)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
(5,791)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
Twelve Months or Longer, Fair Value 49,554us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
14,839us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
Twelve Months or Longer, Gross Unrealized Losses (736)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
(760)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
Total, Fair Value 65,900us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
169,197us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
Total, Gross Unrealized Losses (835)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
(6,551)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 15,791us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
154,356us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
Less than Twelve Months, Gross Unrealized Losses (66)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
(5,790)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
Twelve Months or Longer, Fair Value 49,554us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
14,838us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
Twelve Months or Longer, Gross Unrealized Losses (736)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
(759)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
Total, Fair Value 65,345us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
169,194us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
Total, Gross Unrealized Losses (802)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
(6,549)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 10,121us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
5,770us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
Less than Twelve Months, Gross Unrealized Losses (22)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
(61)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
Twelve Months or Longer, Fair Value 667us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
19us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
Twelve Months or Longer, Gross Unrealized Losses (10)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
(1)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
Total, Fair Value 10,788us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
5,789us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
Total, Gross Unrealized Losses (32)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
(62)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 1,366us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
132,032us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
Less than Twelve Months, Gross Unrealized Losses (8)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
(5,457)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
Twelve Months or Longer, Fair Value 43,118us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
9,324us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
Twelve Months or Longer, Gross Unrealized Losses (585)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
(497)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
Total, Fair Value 44,484us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
141,356us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
Total, Gross Unrealized Losses (593)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
(5,954)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 2,242us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
13,438us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
Less than Twelve Months, Gross Unrealized Losses (19)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
(210)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
Twelve Months or Longer, Fair Value 3,075us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
2,661us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
Twelve Months or Longer, Gross Unrealized Losses (60)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
(105)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
Total, Fair Value 5,317us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
16,099us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
Total, Gross Unrealized Losses (79)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
(315)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 307us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
819us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
Less than Twelve Months, Gross Unrealized Losses (3)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
(15)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
Twelve Months or Longer, Fair Value 809us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
1,237us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
Twelve Months or Longer, Gross Unrealized Losses (41)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
(106)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
Total, Fair Value 1,116us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
2,056us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
Total, Gross Unrealized Losses (44)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
(121)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   286us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
Less than Twelve Months, Gross Unrealized Losses   (12)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   286us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
Total, Gross Unrealized Losses   (12)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 157us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_ForeignSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_ForeignSecuritiesMember
Less than Twelve Months, Gross Unrealized Losses (9)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_ForeignSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_ForeignSecuritiesMember
Twelve Months or Longer, Fair Value 32us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_ForeignSecuritiesMember
45us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_ForeignSecuritiesMember
Twelve Months or Longer, Gross Unrealized Losses (2)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_ForeignSecuritiesMember
(24)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_ForeignSecuritiesMember
Total, Fair Value 189us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_ForeignSecuritiesMember
45us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_ForeignSecuritiesMember
Total, Gross Unrealized Losses (11)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_ForeignSecuritiesMember
(24)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 43us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateandAgencyBondsMember
106us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateandAgencyBondsMember
Less than Twelve Months, Gross Unrealized Losses (1)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateandAgencyBondsMember
(3)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
282us-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
(4)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateandAgencyBondsMember
Total, Fair Value 136us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateandAgencyBondsMember
388us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateandAgencyBondsMember
Total, Gross Unrealized Losses (2)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateandAgencyBondsMember
(7)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 575us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
116us-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
(2)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
Twelve Months or Longer, Fair Value 1,080us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
280us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
Twelve Months or Longer, Gross Unrealized Losses (19)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
(3)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
Total, Fair Value 1,655us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
396us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
Total, Gross Unrealized Losses (22)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
(5)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 14,811us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxableSecuritiesMember
152,567us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxableSecuritiesMember
Less than Twelve Months, Gross Unrealized Losses (65)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxableSecuritiesMember
(5,760)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxableSecuritiesMember
Twelve Months or Longer, Fair Value 48,874us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxableSecuritiesMember
13,848us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxableSecuritiesMember
Twelve Months or Longer, Gross Unrealized Losses (718)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxableSecuritiesMember
(740)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxableSecuritiesMember
Total, Fair Value 63,685us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxableSecuritiesMember
166,415us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxableSecuritiesMember
Total, Gross Unrealized Losses (783)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxableSecuritiesMember
(6,500)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 980us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
1,789us-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
(30)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
Twelve Months or Longer, Fair Value 680us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
990us-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
(19)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
Total, Fair Value 1,660us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_TemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
2,779us-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
(49)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 555us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_OtherThanTemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
2us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue
/ bac_ImpairmentTypeAxis
= bac_OtherThanTemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
Less than Twelve Months, Gross Unrealized Losses (33)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_OtherThanTemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
(1)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
1us-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
(1)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_OtherThanTemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
Total, Fair Value 555us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_OtherThanTemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
3us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValue
/ bac_ImpairmentTypeAxis
= bac_OtherThanTemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
Total, Gross Unrealized Losses $ (33)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_OtherThanTemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
$ (2)us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLoss
/ bac_ImpairmentTypeAxis
= bac_OtherThanTemporarilyImpairedMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember