Annual report pursuant to Section 13 and 15(d)

Employee Benefit Plans - Funded Status (Details)

v2.4.1.9
Employee Benefit Plans - Funded Status (Details) (USD $)
In Millions, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Change in fair value of plan assets      
Fair value, December 31 $ 24,133us-gaap_DefinedBenefitPlanFairValueOfPlanAssets $ 23,525us-gaap_DefinedBenefitPlanFairValueOfPlanAssets  
Qualified Pension Plan      
Change in fair value of plan assets      
Fair value, January 1 18,276us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
16,274us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
 
Actual return on plan assets 1,261us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
2,873us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
 
Company contributions 0us-gaap_DefinedBenefitPlanContributionsByEmployer
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
0us-gaap_DefinedBenefitPlanContributionsByEmployer
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
 
Plan participant contributions 0us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
0us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
 
Settlements and curtailments 0bac_DefinedBenefitPlanSettlementsandCurtailmentsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
0bac_DefinedBenefitPlanSettlementsandCurtailmentsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
 
Benefits paid (923)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
(871)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
 
Fair value, December 31 18,614us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
18,276us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
16,274us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
Change in projected benefit obligation      
Projected benefit obligation, January 1 14,145us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
15,655us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
 
Service cost 0us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
0us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
236us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
Interest cost 665us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
623us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
681us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
Plan participant contributions 0us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
0us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
 
Plan amendments 0us-gaap_DefinedBenefitPlanPlanAmendments
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
0us-gaap_DefinedBenefitPlanPlanAmendments
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
1,300us-gaap_DefinedBenefitPlanPlanAmendments
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
Settlements and curtailments 0bac_DefinedBenefitPlanCurtailmentsandSettlementsBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
17bac_DefinedBenefitPlanCurtailmentsandSettlementsBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
 
Actuarial loss (gain) 1,621us-gaap_DefinedBenefitPlanActuarialGainLoss
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
(1,279)us-gaap_DefinedBenefitPlanActuarialGainLoss
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
 
Benefits paid (923)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
(871)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
 
Projected benefit obligation, December 31 15,508us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
14,145us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
15,655us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
Amount recognized, December 31 3,106us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
4,131us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
 
Funded status, December 31      
Accumulated benefit obligation 15,508us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
14,145us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
 
Overfunded (unfunded) status of ABO 3,106bac_DefinedBenefitPlanFundedStatusofPlanExcludingProvisionforFutureSalaries
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
4,131bac_DefinedBenefitPlanFundedStatusofPlanExcludingProvisionforFutureSalaries
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
 
Provision for future salaries 0bac_DefinedBenefitPlanProvisionForFutureSalaries
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
0bac_DefinedBenefitPlanProvisionForFutureSalaries
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
 
Projected benefit obligation 15,508us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
14,145us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
15,655us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
Weighted-average assumptions, December 31      
Discount rate 4.12%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
4.85%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
 
Non-U.S. Pension Plans      
Change in fair value of plan assets      
Fair value, January 1 2,457us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
2,306us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Actual return on plan assets 256us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
146us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Company contributions 84us-gaap_DefinedBenefitPlanContributionsByEmployer
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
131us-gaap_DefinedBenefitPlanContributionsByEmployer
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Plan participant contributions 1us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
1us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Settlements and curtailments (5)bac_DefinedBenefitPlanSettlementsandCurtailmentsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
(80)bac_DefinedBenefitPlanSettlementsandCurtailmentsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Benefits paid (68)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
(80)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Foreign currency exchange rate changes (161)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
33us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Fair value, December 31 2,564us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
2,457us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
2,306us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Change in projected benefit obligation      
Projected benefit obligation, January 1 2,580us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
2,460us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Service cost 29us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
32us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
40us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Interest cost 109us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
98us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
97us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Plan participant contributions 1us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
1us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Plan amendments 1us-gaap_DefinedBenefitPlanPlanAmendments
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
2us-gaap_DefinedBenefitPlanPlanAmendments
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Settlements and curtailments (6)bac_DefinedBenefitPlanCurtailmentsandSettlementsBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
(116)bac_DefinedBenefitPlanCurtailmentsandSettlementsBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Actuarial loss (gain) 208us-gaap_DefinedBenefitPlanActuarialGainLoss
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
156us-gaap_DefinedBenefitPlanActuarialGainLoss
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Benefits paid (68)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
(80)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Foreign currency exchange rate changes (166)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
27us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Projected benefit obligation, December 31 2,688us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
2,580us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
2,460us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Amount recognized, December 31 (124)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
(123)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Funded status, December 31      
Accumulated benefit obligation 2,582us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
2,463us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Overfunded (unfunded) status of ABO (18)bac_DefinedBenefitPlanFundedStatusofPlanExcludingProvisionforFutureSalaries
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
(6)bac_DefinedBenefitPlanFundedStatusofPlanExcludingProvisionforFutureSalaries
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Provision for future salaries 106bac_DefinedBenefitPlanProvisionForFutureSalaries
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
117bac_DefinedBenefitPlanProvisionForFutureSalaries
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Projected benefit obligation 2,688us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
2,580us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
2,460us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Weighted-average assumptions, December 31      
Discount rate 3.56%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
4.30%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Rate of compensation increase 4.70%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationRateOfCompensationIncrease
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
4.91%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationRateOfCompensationIncrease
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Nonqualified and Other Pension Plans      
Change in fair value of plan assets      
Fair value, January 1 2,720us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
3,063us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
 
Actual return on plan assets 336us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
(217)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
 
Company contributions 97us-gaap_DefinedBenefitPlanContributionsByEmployer
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
98us-gaap_DefinedBenefitPlanContributionsByEmployer
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
 
Plan participant contributions 0us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
0us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
 
Settlements and curtailments 0bac_DefinedBenefitPlanSettlementsandCurtailmentsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
(7)bac_DefinedBenefitPlanSettlementsandCurtailmentsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
 
Benefits paid (226)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
(217)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
 
Fair value, December 31 2,927us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
2,720us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
3,063us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
Change in projected benefit obligation      
Projected benefit obligation, January 1 3,070us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
3,334us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
 
Service cost 1us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
1us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
1us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
Interest cost 133us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
120us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
138us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
Plan participant contributions 0us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
0us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
 
Plan amendments 0us-gaap_DefinedBenefitPlanPlanAmendments
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
0us-gaap_DefinedBenefitPlanPlanAmendments
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
 
Settlements and curtailments 0bac_DefinedBenefitPlanCurtailmentsandSettlementsBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
(7)bac_DefinedBenefitPlanCurtailmentsandSettlementsBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
 
Actuarial loss (gain) 351us-gaap_DefinedBenefitPlanActuarialGainLoss
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
(161)us-gaap_DefinedBenefitPlanActuarialGainLoss
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
 
Benefits paid (226)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
(217)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
 
Projected benefit obligation, December 31 3,329us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
3,070us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
3,334us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
Amount recognized, December 31 (402)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
(350)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
 
Funded status, December 31      
Accumulated benefit obligation 3,329us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
3,067us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
 
Overfunded (unfunded) status of ABO (402)bac_DefinedBenefitPlanFundedStatusofPlanExcludingProvisionforFutureSalaries
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
(347)bac_DefinedBenefitPlanFundedStatusofPlanExcludingProvisionforFutureSalaries
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
 
Provision for future salaries 0bac_DefinedBenefitPlanProvisionForFutureSalaries
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
3bac_DefinedBenefitPlanProvisionForFutureSalaries
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
 
Projected benefit obligation 3,329us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
3,070us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
3,334us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
Weighted-average assumptions, December 31      
Discount rate 3.80%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
4.55%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
 
Rate of compensation increase 4.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationRateOfCompensationIncrease
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
4.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationRateOfCompensationIncrease
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
 
Postretirement Health and Life Plans      
Change in fair value of plan assets      
Fair value, January 1 72us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
86us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
 
Actual return on plan assets 6us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
9us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
 
Company contributions 53us-gaap_DefinedBenefitPlanContributionsByEmployer
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
61us-gaap_DefinedBenefitPlanContributionsByEmployer
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
 
Plan participant contributions 129us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
138us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
 
Settlements and curtailments 0bac_DefinedBenefitPlanSettlementsandCurtailmentsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
0bac_DefinedBenefitPlanSettlementsandCurtailmentsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
 
Benefits paid (248)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
(237)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
 
Federal subsidy on benefits paid 16us-gaap_DefinedBenefitPlanGrossPrescriptionDrugSubsidyReceiptsReceived
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
15us-gaap_DefinedBenefitPlanGrossPrescriptionDrugSubsidyReceiptsReceived
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
 
Fair value, December 31 28us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
72us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
86us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
Change in projected benefit obligation      
Projected benefit obligation, January 1 1,356us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
1,574us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
 
Service cost 8us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
9us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
13us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
Interest cost 58us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
54us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
71us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
Plan participant contributions 129us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
138us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
 
Plan amendments 0us-gaap_DefinedBenefitPlanPlanAmendments
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
0us-gaap_DefinedBenefitPlanPlanAmendments
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
 
Settlements and curtailments 0bac_DefinedBenefitPlanCurtailmentsandSettlementsBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
0bac_DefinedBenefitPlanCurtailmentsandSettlementsBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
 
Actuarial loss (gain) 29us-gaap_DefinedBenefitPlanActuarialGainLoss
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
(197)us-gaap_DefinedBenefitPlanActuarialGainLoss
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
 
Benefits paid (248)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
(237)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
 
Federal subsidy on benefits paid 16us-gaap_DefinedBenefitPlanGrossPrescriptionDrugSubsidyReceiptsReceived
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
15us-gaap_DefinedBenefitPlanGrossPrescriptionDrugSubsidyReceiptsReceived
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
 
Foreign currency exchange rate changes (2)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
 
Projected benefit obligation, December 31 1,346us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
1,356us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
1,574us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
Amount recognized, December 31 (1,318)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
(1,284)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
 
Funded status, December 31      
Projected benefit obligation $ 1,346us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
$ 1,356us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
$ 1,574us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
Weighted-average assumptions, December 31      
Discount rate 3.75%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
4.50%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember