Annual report pursuant to Section 13 and 15(d)

Fair Value Measurements - Recurring Fair Value (Details)

v2.4.1.9
Fair Value Measurements - Recurring Fair Value (Details) (USD $)
In Millions, unless otherwise specified
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Financial assets      
Federal funds sold and securities borrowed or purchased under agreements to resell $ 62,182us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure $ 68,656us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure  
Trading account assets 191,785us-gaap_TradingSecurities 200,993us-gaap_TradingSecurities  
Gross Derivative Assets 984,800us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement 920,300us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement  
Derivative assets 52,682us-gaap_DerivativeAssets 47,495us-gaap_DerivativeAssets  
Total available-for-sale debt securities 284,274us-gaap_AvailableForSaleSecuritiesDebtSecurities 235,951us-gaap_AvailableForSaleSecuritiesDebtSecurities  
Other debt securities carried at fair value 36,421bac_OtherDebtSecuritiesCarriedAtFairValue 32,844bac_OtherDebtSecuritiesCarriedAtFairValue  
Loans and leases 8,681us-gaap_LoansReceivableFairValueDisclosure 10,042us-gaap_LoansReceivableFairValueDisclosure  
Mortgage servicing rights 3,530us-gaap_ServicingAssetAtFairValueAmount 5,042us-gaap_ServicingAssetAtFairValueAmount 5,716us-gaap_ServicingAssetAtFairValueAmount
Loans held-for-sale 6,801us-gaap_LoansHeldForSaleFairValueDisclosure 6,656us-gaap_LoansHeldForSaleFairValueDisclosure  
Other assets 13,873us-gaap_OtherAssetsFairValueDisclosure 18,055us-gaap_OtherAssetsFairValueDisclosure  
Liabilities      
Interest-bearing deposits in U.S. offices 1,469bac_InterestbearingDepositLiabilitiesDomesticFairValueDisclosure 1,899bac_InterestbearingDepositLiabilitiesDomesticFairValueDisclosure  
Federal funds purchased and securities loaned or sold under agreements to repurchase, measured at fair value 35,357us-gaap_FederalFundsPurchasedAndSecuritiesLoanedOrSoldUnderAgreementsToRepurchaseFairValueDisclosure 26,500us-gaap_FederalFundsPurchasedAndSecuritiesLoanedOrSoldUnderAgreementsToRepurchaseFairValueDisclosure  
Gross Derivative Liabilities 981,800us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement 906,400us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement  
Derivative Liability 46,909us-gaap_DerivativeLiabilities 37,407us-gaap_DerivativeLiabilities  
Short-term borrowings 2,697us-gaap_ShorttermDebtFairValue 1,520us-gaap_ShorttermDebtFairValue  
Long-term debt 36,404us-gaap_LongTermDebtFairValue 47,035us-gaap_LongTermDebtFairValue  
Assets and Liabilities, Recurring Basis, Supplemental Information:      
Assets transferred from Level 1 to Level 2 4,100us-gaap_FairValueAssetsLevel1ToLevel2TransfersAmount 500us-gaap_FairValueAssetsLevel1ToLevel2TransfersAmount  
Liabilities transferred from Level 1 to Level 2 570us-gaap_FairValueLiabilitiesLevel1ToLevel2TransfersAmount    
U.S. government and government agency securities      
Financial assets      
Total available-for-sale debt securities 69,595us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
8,954us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
 
Other debt securities carried at fair value 1,541bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
4,062bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
 
Agency      
Financial assets      
Total available-for-sale debt securities 165,039us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
164,935us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
 
Other debt securities carried at fair value 15,704bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
16,500bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
 
Agency-collateralized mortgage obligations      
Financial assets      
Total available-for-sale debt securities 14,248us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
22,492us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
 
Other debt securities carried at fair value 0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
218bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
 
Non-agency residential      
Financial assets      
Total available-for-sale debt securities 4,454us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
6,239us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
 
Other debt securities carried at fair value 3,745bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
 
Commercial      
Financial assets      
Total available-for-sale debt securities 4,000us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
2,480us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
 
Other debt securities carried at fair value 0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
749bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
 
Other taxable securities      
Financial assets      
Total available-for-sale debt securities 10,791us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
16,830us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
 
Other debt securities carried at fair value 299bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
 
Tax-exempt securities      
Financial assets      
Total available-for-sale debt securities 9,549us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
5,928us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
 
US Government-sponsored Enterprises Debt Securities      
Financial assets      
Trading account assets 17,200us-gaap_TradingSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentSponsoredEnterprisesDebtSecuritiesMember
15,600us-gaap_TradingSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentSponsoredEnterprisesDebtSecuritiesMember
 
Recurring      
Financial assets      
Federal funds sold and securities borrowed or purchased under agreements to resell 62,182us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
68,656us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Trading account assets 191,785us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
200,993us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Netting adjustments (932,103)us-gaap_DerivativeAssetFairValueGrossLiabilityAndObligationToReturnCashOffset
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(872,758)us-gaap_DerivativeAssetFairValueGrossLiabilityAndObligationToReturnCashOffset
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Derivative assets 52,682us-gaap_DerivativeAssets
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
47,495us-gaap_DerivativeAssets
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Total available-for-sale debt securities 284,274us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
235,951us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Other debt securities carried at fair value 36,421bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
32,844bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Loans and leases 8,681us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
10,042us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Mortgage servicing rights 3,530us-gaap_ServicingAssetAtFairValueAmount
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
5,042us-gaap_ServicingAssetAtFairValueAmount
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Loans held-for-sale 6,801us-gaap_LoansHeldForSaleFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
6,656us-gaap_LoansHeldForSaleFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Other assets 13,873us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
18,055us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Total assets 660,229us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
625,734us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Liabilities      
Interest-bearing deposits in U.S. offices 1,469bac_InterestbearingDepositLiabilitiesDomesticFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,899bac_InterestbearingDepositLiabilitiesDomesticFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Federal funds purchased and securities loaned or sold under agreements to repurchase, measured at fair value 35,357us-gaap_FederalFundsPurchasedAndSecuritiesLoanedOrSoldUnderAgreementsToRepurchaseFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
26,500us-gaap_FederalFundsPurchasedAndSecuritiesLoanedOrSoldUnderAgreementsToRepurchaseFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Total trading account liabilities 74,192us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
83,469us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Netting adjustment (934,857)us-gaap_DerivativeLiabilityFairValueGrossAssetAndRightToReclaimCashOffset
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(868,969)us-gaap_DerivativeLiabilityFairValueGrossAssetAndRightToReclaimCashOffset
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Derivative Liability 46,909us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
37,407us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Short-term borrowings 2,697us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,520us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Accrued expenses and other liabilities 12,055bac_AccruedExpensesandOtherLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
11,233bac_AccruedExpensesandOtherLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Long-term debt 36,404us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
47,035us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Total liabilities 209,083us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
209,063us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Recurring | U.S. government and agency securities      
Financial assets      
Trading account assets 51,019us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
48,847us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
 
Liabilities      
Total trading account liabilities 18,960us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
27,263us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
 
Recurring | Corporate securities, trading loans and other      
Financial assets      
Trading account assets 35,212us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
32,452us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
 
Liabilities      
Total trading account liabilities 7,169us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
6,479us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
 
Recurring | Equity securities      
Financial assets      
Trading account assets 56,358us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
64,451us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
 
Liabilities      
Total trading account liabilities 28,349us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
27,585us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
 
Recurring | Non-U.S. sovereign debt      
Financial assets      
Trading account assets 36,254us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
37,224us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
 
Liabilities      
Total trading account liabilities 19,714us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
22,142us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
 
Recurring | Mortgage trading loans and ABS      
Financial assets      
Trading account assets 12,942us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageTradingLoansAndAssetBackedSecuritiesMember
18,019us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageTradingLoansAndAssetBackedSecuritiesMember
 
Recurring | U.S. government and government agency securities      
Financial assets      
Total available-for-sale debt securities 69,595us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
8,954us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
 
Other debt securities carried at fair value 1,541bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
4,062bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
 
Recurring | Agency      
Financial assets      
Total available-for-sale debt securities 165,039us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
164,935us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
 
Other debt securities carried at fair value 15,704bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
16,500bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
 
Recurring | Agency-collateralized mortgage obligations      
Financial assets      
Total available-for-sale debt securities 14,248us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
22,492us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
 
Other debt securities carried at fair value   218bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
 
Recurring | Non-agency residential      
Financial assets      
Total available-for-sale debt securities 4,454us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
6,239us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
 
Other debt securities carried at fair value 3,745bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
   
Recurring | Commercial      
Financial assets      
Total available-for-sale debt securities 4,000us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
2,480us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
 
Other debt securities carried at fair value   749bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
 
Recurring | Non-U.S. securities      
Financial assets      
Total available-for-sale debt securities 6,230us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignCorporateDebtSecuritiesMember
7,220us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignCorporateDebtSecuritiesMember
 
Other debt securities carried at fair value 15,132bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignCorporateDebtSecuritiesMember
11,315bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignCorporateDebtSecuritiesMember
 
Recurring | Corporate/Agency bonds      
Financial assets      
Total available-for-sale debt securities 368us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
873us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
 
Recurring | Other taxable securities      
Financial assets      
Total available-for-sale debt securities 10,791us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
16,830us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
 
Other debt securities carried at fair value 299bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
   
Recurring | Tax-exempt securities      
Financial assets      
Total available-for-sale debt securities 9,549us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
5,928us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
 
Recurring | Level 1      
Financial assets      
Federal funds sold and securities borrowed or purchased under agreements to resell 0us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Trading account assets 87,579us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
101,050us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Gross Derivative Assets 4,957us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
2,374us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Total available-for-sale debt securities 70,624us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
10,309us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Other debt securities carried at fair value 14,811bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
11,519bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Loans and leases 0us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Mortgage servicing rights 0us-gaap_ServicingAssetAtFairValueAmount
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_ServicingAssetAtFairValueAmount
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Loans held-for-sale 0us-gaap_LoansHeldForSaleFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_LoansHeldForSaleFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Other assets 11,581us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
14,474us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Total assets 189,552us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
139,726us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Liabilities      
Interest-bearing deposits in U.S. offices 0bac_InterestbearingDepositLiabilitiesDomesticFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0bac_InterestbearingDepositLiabilitiesDomesticFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Federal funds purchased and securities loaned or sold under agreements to repurchase, measured at fair value 0us-gaap_FederalFundsPurchasedAndSecuritiesLoanedOrSoldUnderAgreementsToRepurchaseFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_FederalFundsPurchasedAndSecuritiesLoanedOrSoldUnderAgreementsToRepurchaseFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Total trading account liabilities 59,471us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
72,062us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Gross Derivative Liabilities 4,493us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,968us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Short-term borrowings 0us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Accrued expenses and other liabilities 10,795bac_AccruedExpensesandOtherLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
10,130bac_AccruedExpensesandOtherLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Long-term debt 0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Total liabilities 74,759us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
84,160us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Recurring | Level 1 | U.S. government and agency securities      
Financial assets      
Trading account assets 33,470us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
34,222us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
 
Liabilities      
Total trading account liabilities 18,514us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
26,915us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
 
Recurring | Level 1 | Corporate securities, trading loans and other      
Financial assets      
Trading account assets 243us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
1,147us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
 
Liabilities      
Total trading account liabilities 189us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
518us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
 
Recurring | Level 1 | Equity securities      
Financial assets      
Trading account assets 33,518us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
41,324us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
 
Liabilities      
Total trading account liabilities 24,679us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
23,874us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
 
Recurring | Level 1 | Non-U.S. sovereign debt      
Financial assets      
Trading account assets 20,348us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
24,357us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
 
Liabilities      
Total trading account liabilities 16,089us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
20,755us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
 
Recurring | Level 1 | U.S. government and government agency securities      
Financial assets      
Total available-for-sale debt securities 67,413us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
6,591us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
 
Other debt securities carried at fair value 1,541bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
4,062bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
 
Recurring | Level 1 | Agency      
Financial assets      
Total available-for-sale debt securities 0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
 
Other debt securities carried at fair value 0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
 
Recurring | Level 1 | Agency-collateralized mortgage obligations      
Financial assets      
Total available-for-sale debt securities 0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
 
Other debt securities carried at fair value   0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
 
Recurring | Level 1 | Non-agency residential      
Financial assets      
Total available-for-sale debt securities 0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
 
Other debt securities carried at fair value 0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
   
Recurring | Level 1 | Commercial      
Financial assets      
Total available-for-sale debt securities 0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
 
Other debt securities carried at fair value   0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
 
Recurring | Level 1 | Non-U.S. securities      
Financial assets      
Total available-for-sale debt securities 3,191us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignCorporateDebtSecuritiesMember
3,698us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignCorporateDebtSecuritiesMember
 
Other debt securities carried at fair value 13,270bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignCorporateDebtSecuritiesMember
7,457bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignCorporateDebtSecuritiesMember
 
Recurring | Level 1 | Corporate/Agency bonds      
Financial assets      
Total available-for-sale debt securities 0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
 
Recurring | Level 1 | Other taxable securities      
Financial assets      
Total available-for-sale debt securities 20us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
20us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
 
Other debt securities carried at fair value 0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
   
Recurring | Level 1 | Tax-exempt securities      
Financial assets      
Total available-for-sale debt securities 0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
 
Recurring | Level 2      
Financial assets      
Federal funds sold and securities borrowed or purchased under agreements to resell 62,182us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
68,656us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Trading account assets 97,947us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
90,899us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Gross Derivative Assets 972,977us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
910,602us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Total available-for-sale debt securities 211,095us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
220,882us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Other debt securities carried at fair value 21,610bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
21,325bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Loans and leases 6,698us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
6,985us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Mortgage servicing rights 0us-gaap_ServicingAssetAtFairValueAmount
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
   
Loans held-for-sale 6,628us-gaap_LoansHeldForSaleFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
5,727us-gaap_LoansHeldForSaleFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Other assets 1,381us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,912us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Total assets 1,380,518us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,326,988us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Liabilities      
Interest-bearing deposits in U.S. offices 1,469bac_InterestbearingDepositLiabilitiesDomesticFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,899bac_InterestbearingDepositLiabilitiesDomesticFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Federal funds purchased and securities loaned or sold under agreements to repurchase, measured at fair value 35,357us-gaap_FederalFundsPurchasedAndSecuritiesLoanedOrSoldUnderAgreementsToRepurchaseFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
26,500us-gaap_FederalFundsPurchasedAndSecuritiesLoanedOrSoldUnderAgreementsToRepurchaseFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Total trading account liabilities 14,685us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
11,372us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Gross Derivative Liabilities 969,502us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
896,907us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Short-term borrowings 2,697us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,520us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Accrued expenses and other liabilities 1,250bac_AccruedExpensesandOtherLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,093bac_AccruedExpensesandOtherLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Long-term debt 34,042us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
45,045us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Total liabilities 1,059,002us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
984,336us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Recurring | Level 2 | U.S. government and agency securities      
Financial assets      
Trading account assets 17,549us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
14,625us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
 
Liabilities      
Total trading account liabilities 446us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
348us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
 
Recurring | Level 2 | Corporate securities, trading loans and other      
Financial assets      
Trading account assets 31,699us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
27,746us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
 
Liabilities      
Total trading account liabilities 6,944us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
5,926us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
 
Recurring | Level 2 | Equity securities      
Financial assets      
Trading account assets 22,488us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
22,741us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
 
Liabilities      
Total trading account liabilities 3,670us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
3,711us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
 
Recurring | Level 2 | Non-U.S. sovereign debt      
Financial assets      
Trading account assets 15,332us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
12,399us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
 
Liabilities      
Total trading account liabilities 3,625us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
1,387us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
 
Recurring | Level 2 | Mortgage trading loans and ABS      
Financial assets      
Trading account assets 10,879us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageTradingLoansAndAssetBackedSecuritiesMember
13,388us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageTradingLoansAndAssetBackedSecuritiesMember
 
Recurring | Level 2 | U.S. government and government agency securities      
Financial assets      
Total available-for-sale debt securities 2,182us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
2,363us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
 
Other debt securities carried at fair value 0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
   
Recurring | Level 2 | Agency      
Financial assets      
Total available-for-sale debt securities 165,039us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
164,935us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
 
Other debt securities carried at fair value 15,704bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
16,500bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
 
Recurring | Level 2 | Agency-collateralized mortgage obligations      
Financial assets      
Total available-for-sale debt securities 14,248us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
22,492us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
 
Other debt securities carried at fair value   218bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
 
Recurring | Level 2 | Non-agency residential      
Financial assets      
Total available-for-sale debt securities 4,175us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
6,239us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
 
Other debt securities carried at fair value 3,745bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
   
Recurring | Level 2 | Commercial      
Financial assets      
Total available-for-sale debt securities 4,000us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
2,480us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
 
Other debt securities carried at fair value   749bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
 
Recurring | Level 2 | Non-U.S. securities      
Financial assets      
Total available-for-sale debt securities 3,029us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignCorporateDebtSecuritiesMember
3,415us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignCorporateDebtSecuritiesMember
 
Other debt securities carried at fair value 1,862bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignCorporateDebtSecuritiesMember
3,858bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignCorporateDebtSecuritiesMember
 
Recurring | Level 2 | Corporate/Agency bonds      
Financial assets      
Total available-for-sale debt securities 368us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
873us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
 
Recurring | Level 2 | Other taxable securities      
Financial assets      
Total available-for-sale debt securities 9,104us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
12,963us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
 
Other debt securities carried at fair value 299bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
   
Recurring | Level 2 | Tax-exempt securities      
Financial assets      
Total available-for-sale debt securities 8,950us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
5,122us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
 
Recurring | Level 3      
Financial assets      
Federal funds sold and securities borrowed or purchased under agreements to resell 0us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Trading account assets 6,259us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
9,044us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Gross Derivative Assets 6,851us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
7,277us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
8,100us-gaap_DerivativeAssetFairValueGrossAssetIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total available-for-sale debt securities 2,555us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
4,760us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Other debt securities carried at fair value   0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Loans and leases 1,983us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
3,057us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Mortgage servicing rights 3,530us-gaap_ServicingAssetAtFairValueAmount
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
5,042us-gaap_ServicingAssetAtFairValueAmount
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Loans held-for-sale 173us-gaap_LoansHeldForSaleFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
929us-gaap_LoansHeldForSaleFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Other assets 911us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,669us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Total assets 22,262us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
31,778us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Liabilities      
Interest-bearing deposits in U.S. offices 0bac_InterestbearingDepositLiabilitiesDomesticFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0bac_InterestbearingDepositLiabilitiesDomesticFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Federal funds purchased and securities loaned or sold under agreements to repurchase, measured at fair value 0us-gaap_FederalFundsPurchasedAndSecuritiesLoanedOrSoldUnderAgreementsToRepurchaseFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_FederalFundsPurchasedAndSecuritiesLoanedOrSoldUnderAgreementsToRepurchaseFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Total trading account liabilities 36us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
35us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Gross Derivative Liabilities 7,771us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
7,501us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
6,600us-gaap_DerivativeLiabilityFairValueGrossLiabilityIncludingNotSubjectToMasterNettingArrangement
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Short-term borrowings 0us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Accrued expenses and other liabilities 10bac_AccruedExpensesandOtherLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
10bac_AccruedExpensesandOtherLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Long-term debt 2,362us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,990us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Total liabilities 10,179us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
9,536us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Recurring | Level 3 | U.S. government and agency securities      
Financial assets      
Trading account assets 0us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
 
Liabilities      
Total trading account liabilities   0us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
 
Recurring | Level 3 | Corporate securities, trading loans and other      
Financial assets      
Trading account assets 3,270us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
3,559us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
 
Total assets 3,300us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
3,600us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
 
Liabilities      
Total trading account liabilities 36us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
35us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_CorporateSecuritiesTradingLoansAndOtherMember
 
Recurring | Level 3 | Equity securities      
Financial assets      
Trading account assets 352us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
386us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
 
Liabilities      
Total trading account liabilities   0us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
 
Recurring | Level 3 | Non-U.S. sovereign debt      
Financial assets      
Trading account assets 574us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
468us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
 
Total assets 574us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
468us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
 
Liabilities      
Total trading account liabilities   0us-gaap_TradingLiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
 
Recurring | Level 3 | Mortgage trading loans and ABS      
Financial assets      
Trading account assets 2,063us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageTradingLoansAndAssetBackedSecuritiesMember
4,631us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageTradingLoansAndAssetBackedSecuritiesMember
 
Total assets 2,100us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageTradingLoansAndAssetBackedSecuritiesMember
4,600us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageTradingLoansAndAssetBackedSecuritiesMember
 
Recurring | Level 3 | U.S. government and government agency securities      
Financial assets      
Total available-for-sale debt securities 0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
 
Other debt securities carried at fair value 0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
   
Recurring | Level 3 | Agency      
Financial assets      
Total available-for-sale debt securities 0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
 
Other debt securities carried at fair value 0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyMember
 
Recurring | Level 3 | Agency-collateralized mortgage obligations      
Financial assets      
Total available-for-sale debt securities 0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
   
Other debt securities carried at fair value   0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_MortgageBackedSecuritiesAgencyCollateralizedMortgageObligationMember
 
Recurring | Level 3 | Non-agency residential      
Financial assets      
Total available-for-sale debt securities 279us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
 
Other debt securities carried at fair value 0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ResidentialMortgageBackedSecuritiesMember
   
Recurring | Level 3 | Commercial      
Financial assets      
Total available-for-sale debt securities 0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
 
Other debt securities carried at fair value   0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
 
Recurring | Level 3 | Non-U.S. securities      
Financial assets      
Total available-for-sale debt securities 10us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignCorporateDebtSecuritiesMember
107us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignCorporateDebtSecuritiesMember
 
Other debt securities carried at fair value 0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignCorporateDebtSecuritiesMember
0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignCorporateDebtSecuritiesMember
 
Recurring | Level 3 | Corporate/Agency bonds      
Financial assets      
Total available-for-sale debt securities 0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
 
Recurring | Level 3 | Other taxable securities      
Financial assets      
Total available-for-sale debt securities 1,667us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
3,847us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
 
Other debt securities carried at fair value 0bac_OtherDebtSecuritiesCarriedAtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
   
Total assets 1,700us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
3,800us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_OtherTaxableSecuritiesMember
 
Recurring | Level 3 | Tax-exempt securities      
Financial assets      
Total available-for-sale debt securities 599us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
806us-gaap_AvailableForSaleSecuritiesDebtSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
 
Total assets $ 599us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember
$ 806us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= bac_TaxExemptSecuritiesMember