Annual report pursuant to Section 13 and 15(d)

Fair Value Measurements - Nonrecurring Fair Value (Details)

v2.4.1.9
Fair Value Measurements - Nonrecurring Fair Value (Details) (USD $)
In Millions, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Assets and Liabilities Measured at Fair Value on a Nonrecurring Basis      
Loans held-for-sale, measured at fair value $ 6,801us-gaap_LoansHeldForSaleFairValueDisclosure $ 6,656us-gaap_LoansHeldForSaleFairValueDisclosure  
Loans and leases, measured at fair value 8,681us-gaap_LoansReceivableFairValueDisclosure 10,042us-gaap_LoansReceivableFairValueDisclosure  
Other assets, measured at fair value 13,873us-gaap_OtherAssetsFairValueDisclosure 18,055us-gaap_OtherAssetsFairValueDisclosure  
Nonrecurring      
Assets and Liabilities Measured at Fair Value on a Nonrecurring Basis      
Gains (Losses) on loans held-for-sale (19)bac_GainsLossesOnLoansHeldForSale
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
(71)bac_GainsLossesOnLoansHeldForSale
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
(24)bac_GainsLossesOnLoansHeldForSale
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
Gains (Losses) on loans and leases (1,132)bac_GainLossOnLoansAndLeases
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
(1,104)bac_GainLossOnLoansAndLeases
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
(3,116)bac_GainLossOnLoansAndLeases
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
Gains (Losses) on Foreclosed Properties (40)bac_GainLossOnForeclosedProperties
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
(39)bac_GainLossOnForeclosedProperties
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
(47)bac_GainLossOnForeclosedProperties
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
Gains (Losses) on other assets (6)bac_GainLossOnOtherAssets
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
(20)bac_GainLossOnOtherAssets
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
(16)bac_GainLossOnOtherAssets
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
Nonrecurring | Level 2      
Assets and Liabilities Measured at Fair Value on a Nonrecurring Basis      
Loans held-for-sale, measured at fair value 156us-gaap_LoansHeldForSaleFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
2,138us-gaap_LoansHeldForSaleFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
 
Loans and leases, measured at fair value 5us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
18us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
 
Foreclosed properties, measured at fair value 0bac_ForeclosedPropertiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
12bac_ForeclosedPropertiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
 
Other assets, measured at fair value 13us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
88us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
 
Nonrecurring | Level 3      
Assets and Liabilities Measured at Fair Value on a Nonrecurring Basis      
Loans held-for-sale, measured at fair value 30us-gaap_LoansHeldForSaleFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
115us-gaap_LoansHeldForSaleFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
 
Loans and leases, measured at fair value 4,636us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
5,240us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
 
Foreclosed properties, measured at fair value 1,197bac_ForeclosedPropertiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
1,258bac_ForeclosedPropertiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
 
Other assets, measured at fair value $ 0us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
$ 0us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember