Annual report pursuant to Section 13 and 15(d)

Employee Benefit Plans - Components of Periodic Benefit Cost (Details)

v2.4.1.9
Employee Benefit Plans - Components of Periodic Benefit Cost (Details) (USD $)
In Millions, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Qualified Pension Plan      
Components of net periodic benefit cost      
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
Expected return on plan assets (1,018)us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
(1,024)us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
(1,246)us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
Amortization of prior service cost (credits) 0us-gaap_DefinedBenefitPlanAmortizationOfPriorServiceCostCredit
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
0us-gaap_DefinedBenefitPlanAmortizationOfPriorServiceCostCredit
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
9us-gaap_DefinedBenefitPlanAmortizationOfPriorServiceCostCredit
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
Amortization of net actuarial loss (gain) 111us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
242us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
469us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
Recognized loss due to settlements and curtailments 0us-gaap_DefinedBenefitPlanRecognizedNetGainLossDueToSettlementsAndCurtailments1
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
17us-gaap_DefinedBenefitPlanRecognizedNetGainLossDueToSettlementsAndCurtailments1
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
58us-gaap_DefinedBenefitPlanRecognizedNetGainLossDueToSettlementsAndCurtailments1
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
Net periodic benefit cost (income) (242)us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
(142)us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
207us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
Weighted-average assumptions used to determine net cost for years ended December 31      
Discount rate 4.85%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
4.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
4.95%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
Expected return on plan assets 6.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
6.50%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
8.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
Rate of compensation increase     4.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostRateOfCompensationIncrease
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_QualifiedPensionPlansMember
Non-U.S. Pension Plans      
Components of net periodic benefit cost      
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
Expected return on plan assets (137)us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
(121)us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
(137)us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Amortization of prior service cost (credits) 1us-gaap_DefinedBenefitPlanAmortizationOfPriorServiceCostCredit
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanAmortizationOfPriorServiceCostCredit
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanAmortizationOfPriorServiceCostCredit
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Amortization of net actuarial loss (gain) 3us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
2us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
(9)us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Recognized loss due to settlements and curtailments 2us-gaap_DefinedBenefitPlanRecognizedNetGainLossDueToSettlementsAndCurtailments1
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
(7)us-gaap_DefinedBenefitPlanRecognizedNetGainLossDueToSettlementsAndCurtailments1
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanRecognizedNetGainLossDueToSettlementsAndCurtailments1
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Net periodic benefit cost (income) 7us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
4us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
(9)us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Weighted-average assumptions used to determine net cost for years ended December 31      
Discount rate 4.30%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
4.23%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
4.87%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Expected return on plan assets 5.52%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
5.50%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
6.65%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Rate of compensation increase 4.91%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostRateOfCompensationIncrease
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
4.37%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostRateOfCompensationIncrease
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
4.42%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostRateOfCompensationIncrease
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Nonqualified and Other Pension Plans      
Components of net periodic benefit cost      
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
Expected return on plan assets (124)us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
(109)us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
(152)us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
Amortization of transition obligation 0us-gaap_DefinedBenefitPlanAmortizationOfTransitionObligationsAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
0us-gaap_DefinedBenefitPlanAmortizationOfTransitionObligationsAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
0us-gaap_DefinedBenefitPlanAmortizationOfTransitionObligationsAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
Amortization of prior service cost (credits) 0us-gaap_DefinedBenefitPlanAmortizationOfPriorServiceCostCredit
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
0us-gaap_DefinedBenefitPlanAmortizationOfPriorServiceCostCredit
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
(3)us-gaap_DefinedBenefitPlanAmortizationOfPriorServiceCostCredit
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
Amortization of net actuarial loss (gain) 25us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
25us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
8us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
Recognized loss due to settlements and curtailments 0us-gaap_DefinedBenefitPlanRecognizedNetGainLossDueToSettlementsAndCurtailments1
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
2us-gaap_DefinedBenefitPlanRecognizedNetGainLossDueToSettlementsAndCurtailments1
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
0us-gaap_DefinedBenefitPlanRecognizedNetGainLossDueToSettlementsAndCurtailments1
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
Net periodic benefit cost (income) 35us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
39us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
(8)us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
Weighted-average assumptions used to determine net cost for years ended December 31      
Discount rate 4.55%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
3.65%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
4.65%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
Expected return on plan assets 4.60%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
3.75%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
5.25%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
Rate of compensation increase 4.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostRateOfCompensationIncrease
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
4.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostRateOfCompensationIncrease
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
4.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostRateOfCompensationIncrease
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_NonqualifiedAndOtherPensionPlansMember
Postretirement Health and Life Plans      
Components of net periodic benefit cost      
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
Expected return on plan assets (4)us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
(5)us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
(8)us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
Amortization of transition obligation 0us-gaap_DefinedBenefitPlanAmortizationOfTransitionObligationsAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
0us-gaap_DefinedBenefitPlanAmortizationOfTransitionObligationsAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
32us-gaap_DefinedBenefitPlanAmortizationOfTransitionObligationsAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
Amortization of prior service cost (credits) 4us-gaap_DefinedBenefitPlanAmortizationOfPriorServiceCostCredit
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
4us-gaap_DefinedBenefitPlanAmortizationOfPriorServiceCostCredit
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
4us-gaap_DefinedBenefitPlanAmortizationOfPriorServiceCostCredit
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
Amortization of net actuarial loss (gain) (89)us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
(42)us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
(38)us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
Recognized loss due to settlements and curtailments 0us-gaap_DefinedBenefitPlanRecognizedNetGainLossDueToSettlementsAndCurtailments1
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
6us-gaap_DefinedBenefitPlanRecognizedNetGainLossDueToSettlementsAndCurtailments1
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
0us-gaap_DefinedBenefitPlanRecognizedNetGainLossDueToSettlementsAndCurtailments1
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
Net periodic benefit cost (income) $ (23)us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
$ 26us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
$ 74us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
Weighted-average assumptions used to determine net cost for years ended December 31      
Discount rate 4.50%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
3.65%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
4.65%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
Expected return on plan assets 6.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
6.50%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember
8.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= bac_PostretirementHealthCoverageandLifeInsuranceMember