Annual report pursuant to Section 13 and 15(d)

Employee Benefit Plans - Fair Value Measurements Rollforward (Details)

v2.4.1.9
Employee Benefit Plans - Fair Value Measurements Rollforward (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  
U.S. government and government agency securities      
Change in fair value of plan assets      
Fair value, December 31 4,166us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
3,847us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
 
Non-U.S. debt securities      
Change in fair value of plan assets      
Fair value, December 31 1,114us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
1,055us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
 
Private real estate      
Change in fair value of plan assets      
Fair value, December 31 127us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
119us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
 
Real estate commingled/mutual funds      
Change in fair value of plan assets      
Fair value, December 31 636us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
469us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
 
Limited partnerships      
Change in fair value of plan assets      
Fair value, December 31 187us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
262us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
 
Other investments      
Change in fair value of plan assets      
Fair value, December 31 618us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
797us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
 
Level 3      
Change in fair value of plan assets      
Fair value, January 1 879us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
817us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
739us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Actual Return on Plan Assets Still Held at the Reporting Date 31us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
19us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
25us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 159us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
166us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
80us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales and Settlements (103)bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(95)bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(28)bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers into/ (out of) Level 3 (4)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(28)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair value, December 31 962us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
879us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
817us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Level 3 | U.S. government and government agency securities      
Change in fair value of plan assets      
Fair value, January 1 12us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
13us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
13us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Actual Return on Plan Assets Still Held at the Reporting Date 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 0us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales and Settlements (1)bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(1)bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers into/ (out of) Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair value, December 31 11us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
12us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
13us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Level 3 | Non-U.S. debt securities      
Change in fair value of plan assets      
Fair value, January 1 6us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
10us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
10us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Actual Return on Plan Assets Still Held at the Reporting Date 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(2)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(1)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 0us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales and Settlements (2)bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(2)bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(1)bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers into/ (out of) Level 3 (4)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair value, December 31 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
6us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
10us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Level 3 | Private real estate      
Change in fair value of plan assets      
Fair value, January 1 119us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
110us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
113us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Actual Return on Plan Assets Still Held at the Reporting Date 5us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(2)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 5us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
7us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
2us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales and Settlements (2)bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(2)bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(3)bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers into/ (out of) Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair value, December 31 127us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
119us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
110us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_PrivateRealEstateMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Level 3 | Real estate commingled/mutual funds      
Change in fair value of plan assets      
Fair value, January 1 462us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
324us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
249us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Actual Return on Plan Assets Still Held at the Reporting Date 20us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
15us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
13us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 150us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
123us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
62us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales and Settlements 0bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers into/ (out of) Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair value, December 31 632us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
462us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
324us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_RealEstateCommingledMutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Level 3 | Limited partnerships      
Change in fair value of plan assets      
Fair value, January 1 145us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
231us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
232us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Actual Return on Plan Assets Still Held at the Reporting Date 5us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
8us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
8us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 3us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
23us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
11us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales and Settlements (88)bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(89)bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(20)bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers into/ (out of) Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(28)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair value, December 31 65us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
145us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
231us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= bac_LimitedPartnershipsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Level 3 | Other investments      
Change in fair value of plan assets      
Fair value, January 1 135us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
129us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
122us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Actual Return on Plan Assets Still Held at the Reporting Date 1us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(6)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
7us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 1us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
13us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales and Settlements (10)bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(1)bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(4)bac_DefinedBenefitPlanDivestituresandSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers into/ (out of) Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair value, December 31 $ 127us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
$ 135us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
$ 129us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member