Annual report pursuant to Section 13 and 15(d)

Shareholders' Equity - Preferred Stock Summary (Details)

v2.4.1.9
Shareholders' Equity - Preferred Stock Summary (Details) (USD $)
In Millions, except Share data, unless otherwise specified
12 Months Ended 0 Months Ended
Dec. 31, 2014
Sep. 09, 2014
Jan. 30, 2018
May 15, 2018
Jun. 02, 2023
Jun. 18, 2019
Sep. 06, 2024
Oct. 24, 2024
Dec. 31, 2013
Class of Stock [Line Items]                  
Total Shares Outstanding 3,647,790us-gaap_PreferredStockSharesOutstanding               3,407,790us-gaap_PreferredStockSharesOutstanding
Carrying Value $ 19,505bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments                
Adjustment to preferred stock 196bac_PreferredStockRedeemableandNonRedeemableValueAdjustments                
Series B Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 7,571us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesBPreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 100us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesBPreferredStockMember
               
Carrying Value 1bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesBPreferredStockMember
               
Per Annum Dividend Rate 7.00%us-gaap_PreferredStockDividendRatePercentage
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesBPreferredStockMember
               
Series D Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 26,174us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesDPreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 25,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesDPreferredStockMember
               
Carrying Value 654bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesDPreferredStockMember
               
Per Annum Dividend Rate 6.204%us-gaap_PreferredStockDividendRatePercentage
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesDPreferredStockMember
               
Series E Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 12,691us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesEPreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 25,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesEPreferredStockMember
               
Carrying Value 317bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesEPreferredStockMember
               
Minimum interest rate per annum 4.00%bac_PreferredStockDividendRate.BasisSpreadonVariableRateMinimumRateperAnnum
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesEPreferredStockMember
               
Series F Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 1,409us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesFPreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 100,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesFPreferredStockMember
               
Carrying Value 141bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesFPreferredStockMember
               
Minimum interest rate per annum 4.00%bac_PreferredStockDividendRate.BasisSpreadonVariableRateMinimumRateperAnnum
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesFPreferredStockMember
               
Series G Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 4,926us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesGPreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 100,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesGPreferredStockMember
               
Carrying Value 493bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesGPreferredStockMember
               
Minimum interest rate per annum 4.00%bac_PreferredStockDividendRate.BasisSpreadonVariableRateMinimumRateperAnnum
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesGPreferredStockMember
               
Series I Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 14,584us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesIPreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 25,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesIPreferredStockMember
               
Carrying Value 365bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesIPreferredStockMember
               
Per Annum Dividend Rate 6.625%us-gaap_PreferredStockDividendRatePercentage
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesIPreferredStockMember
               
Series K Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 61,773us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesKPreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 25,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesKPreferredStockMember
               
Carrying Value 1,544bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesKPreferredStockMember
               
Per Annum Dividend Rate 8.00%us-gaap_PreferredStockDividendRatePercentage
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesKPreferredStockMember
               
Series L Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 3,080,182us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesLPreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 1,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesLPreferredStockMember
               
Carrying Value 3,080bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesLPreferredStockMember
               
Per Annum Dividend Rate 7.25%us-gaap_PreferredStockDividendRatePercentage
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesLPreferredStockMember
               
Series M Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 52,399us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesMPreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 25,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesMPreferredStockMember
               
Carrying Value 1,310bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesMPreferredStockMember
               
Per Annum Dividend Rate 8.125%us-gaap_PreferredStockDividendRatePercentage
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesMPreferredStockMember
               
Series T Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 50,000us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesTPreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 100,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesTPreferredStockMember
               
Carrying Value 2,918bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesTPreferredStockMember
               
Per Annum Dividend Rate 6.00%us-gaap_PreferredStockDividendRatePercentage
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesTPreferredStockMember
               
Series U Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 40,000us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesUPreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 25,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesUPreferredStockMember
               
Carrying Value 1,000bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesUPreferredStockMember
               
Per Annum Dividend Rate 5.20%us-gaap_PreferredStockDividendRatePercentage
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesUPreferredStockMember
               
Series V Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 60,000us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesVPreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 25,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesVPreferredStockMember
               
Carrying Value 1,500bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesVPreferredStockMember
               
Per Annum Dividend Rate 5.125%us-gaap_PreferredStockDividendRatePercentage
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesVPreferredStockMember
               
Series W Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 44,000us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesWPreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 25,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesWPreferredStockMember
               
Carrying Value 1,100bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesWPreferredStockMember
               
Per Annum Dividend Rate 6.625%us-gaap_PreferredStockDividendRatePercentage
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesWPreferredStockMember
6.625%us-gaap_PreferredStockDividendRatePercentage
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesWPreferredStockMember
             
Series X Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 80,000us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesXPreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 25,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesXPreferredStockMember
               
Carrying Value 2,000bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesXPreferredStockMember
               
Per Annum Dividend Rate 6.25%us-gaap_PreferredStockDividendRatePercentage
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesXPreferredStockMember
               
Series Z Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 56,000us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesZPreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 25,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesZPreferredStockMember
               
Carrying Value 1,400bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesZPreferredStockMember
               
Per Annum Dividend Rate 65.00%us-gaap_PreferredStockDividendRatePercentage
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesZPreferredStockMember
               
Series 1 Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 3,275us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= bac_Series1PreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 30,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= bac_Series1PreferredStockMember
               
Carrying Value 98bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= bac_Series1PreferredStockMember
               
Minimum interest rate per annum 3.00%bac_PreferredStockDividendRate.BasisSpreadonVariableRateMinimumRateperAnnum
/ us-gaap_StatementClassOfStockAxis
= bac_Series1PreferredStockMember
               
Series 2 Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 9,967us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= bac_Series2PreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 30,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= bac_Series2PreferredStockMember
               
Carrying Value 299bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= bac_Series2PreferredStockMember
               
Minimum interest rate per annum 3.00%bac_PreferredStockDividendRate.BasisSpreadonVariableRateMinimumRateperAnnum
/ us-gaap_StatementClassOfStockAxis
= bac_Series2PreferredStockMember
               
Series 3 Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 21,773us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= bac_Series3PreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 30,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= bac_Series3PreferredStockMember
               
Carrying Value 653bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= bac_Series3PreferredStockMember
               
Per Annum Dividend Rate 6.375%us-gaap_PreferredStockDividendRatePercentage
/ us-gaap_StatementClassOfStockAxis
= bac_Series3PreferredStockMember
               
Series 4 Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 7,010us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= bac_Series4PreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 30,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= bac_Series4PreferredStockMember
               
Carrying Value 210bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= bac_Series4PreferredStockMember
               
Minimum interest rate per annum 4.00%bac_PreferredStockDividendRate.BasisSpreadonVariableRateMinimumRateperAnnum
/ us-gaap_StatementClassOfStockAxis
= bac_Series4PreferredStockMember
               
Series 5 Preferred Stock                  
Class of Stock [Line Items]                  
Total Shares Outstanding 14,056us-gaap_PreferredStockSharesOutstanding
/ us-gaap_StatementClassOfStockAxis
= bac_Series5PreferredStockMember
               
Liquidation Preference per Share (in dollars) $ 30,000us-gaap_PreferredStockLiquidationPreference
/ us-gaap_StatementClassOfStockAxis
= bac_Series5PreferredStockMember
               
Carrying Value $ 422bac_PreferredStockRedeemableandNonRedeemableValueBeforeAdjustments
/ us-gaap_StatementClassOfStockAxis
= bac_Series5PreferredStockMember
               
Minimum interest rate per annum 4.00%bac_PreferredStockDividendRate.BasisSpreadonVariableRateMinimumRateperAnnum
/ us-gaap_StatementClassOfStockAxis
= bac_Series5PreferredStockMember
               
3-Month London Interbank Offered Rate (LIBOR) | Series E Preferred Stock                  
Class of Stock [Line Items]                  
Basis spread on variable rate for dividend rate 0.0035bac_PreferredStockDividendRateBasisSpreadonVariableRate
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesEPreferredStockMember
/ us-gaap_VariableRateAxis
= bac_A3MonthLondonInterbankOfferedRateLIBORMember
               
3-Month London Interbank Offered Rate (LIBOR) | Series F Preferred Stock                  
Class of Stock [Line Items]                  
Basis spread on variable rate for dividend rate 0.0040bac_PreferredStockDividendRateBasisSpreadonVariableRate
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesFPreferredStockMember
/ us-gaap_VariableRateAxis
= bac_A3MonthLondonInterbankOfferedRateLIBORMember
               
3-Month London Interbank Offered Rate (LIBOR) | Series G Preferred Stock                  
Class of Stock [Line Items]                  
Basis spread on variable rate for dividend rate 0.0040bac_PreferredStockDividendRateBasisSpreadonVariableRate
/ us-gaap_StatementClassOfStockAxis
= us-gaap_SeriesGPreferredStockMember
/ us-gaap_VariableRateAxis
= bac_A3MonthLondonInterbankOfferedRateLIBORMember
               
3-Month London Interbank Offered Rate (LIBOR) | Series 1 Preferred Stock                  
Class of Stock [Line Items]                  
Basis spread on variable rate for dividend rate 0.0075bac_PreferredStockDividendRateBasisSpreadonVariableRate
/ us-gaap_StatementClassOfStockAxis
= bac_Series1PreferredStockMember
/ us-gaap_VariableRateAxis
= bac_A3MonthLondonInterbankOfferedRateLIBORMember
               
3-Month London Interbank Offered Rate (LIBOR) | Series 2 Preferred Stock                  
Class of Stock [Line Items]                  
Basis spread on variable rate for dividend rate 0.0065bac_PreferredStockDividendRateBasisSpreadonVariableRate
/ us-gaap_StatementClassOfStockAxis
= bac_Series2PreferredStockMember
/ us-gaap_VariableRateAxis
= bac_A3MonthLondonInterbankOfferedRateLIBORMember
               
3-Month London Interbank Offered Rate (LIBOR) | Series 4 Preferred Stock                  
Class of Stock [Line Items]                  
Basis spread on variable rate for dividend rate 0.0075bac_PreferredStockDividendRateBasisSpreadonVariableRate
/ us-gaap_StatementClassOfStockAxis
= bac_Series4PreferredStockMember
/ us-gaap_VariableRateAxis
= bac_A3MonthLondonInterbankOfferedRateLIBORMember
               
3-Month London Interbank Offered Rate (LIBOR) | Series 5 Preferred Stock                  
Class of Stock [Line Items]                  
Basis spread on variable rate for dividend rate 0.0050bac_PreferredStockDividendRateBasisSpreadonVariableRate
/ us-gaap_StatementClassOfStockAxis
= bac_Series5PreferredStockMember
/ us-gaap_VariableRateAxis
= bac_A3MonthLondonInterbankOfferedRateLIBORMember
               
Scenario, Forecast | 3-Month London Interbank Offered Rate (LIBOR) | Series K Preferred Stock                  
Class of Stock [Line Items]                  
Basis spread on variable rate for dividend rate     0.0363bac_PreferredStockDividendRateBasisSpreadonVariableRate
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesKPreferredStockMember
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioForecastMember
/ us-gaap_VariableRateAxis
= bac_A3MonthLondonInterbankOfferedRateLIBORMember
           
Scenario, Forecast | 3-Month London Interbank Offered Rate (LIBOR) | Series M Preferred Stock                  
Class of Stock [Line Items]                  
Basis spread on variable rate for dividend rate       0.0364bac_PreferredStockDividendRateBasisSpreadonVariableRate
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesMPreferredStockMember
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioForecastMember
/ us-gaap_VariableRateAxis
= bac_A3MonthLondonInterbankOfferedRateLIBORMember
         
Scenario, Forecast | 3-Month London Interbank Offered Rate (LIBOR) | Series U Preferred Stock                  
Class of Stock [Line Items]                  
Basis spread on variable rate for dividend rate         0.3135bac_PreferredStockDividendRateBasisSpreadonVariableRate
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesUPreferredStockMember
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioForecastMember
/ us-gaap_VariableRateAxis
= bac_A3MonthLondonInterbankOfferedRateLIBORMember
       
Scenario, Forecast | 3-Month London Interbank Offered Rate (LIBOR) | Series V Preferred Stock                  
Class of Stock [Line Items]                  
Basis spread on variable rate for dividend rate           0.3387bac_PreferredStockDividendRateBasisSpreadonVariableRate
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesVPreferredStockMember
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioForecastMember
/ us-gaap_VariableRateAxis
= bac_A3MonthLondonInterbankOfferedRateLIBORMember
     
Scenario, Forecast | 3-Month London Interbank Offered Rate (LIBOR) | Series X Preferred Stock                  
Class of Stock [Line Items]                  
Basis spread on variable rate for dividend rate             0.3705bac_PreferredStockDividendRateBasisSpreadonVariableRate
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesXPreferredStockMember
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioForecastMember
/ us-gaap_VariableRateAxis
= bac_A3MonthLondonInterbankOfferedRateLIBORMember
   
Scenario, Forecast | 3-Month London Interbank Offered Rate (LIBOR) | Series Z Preferred Stock                  
Class of Stock [Line Items]                  
Basis spread on variable rate for dividend rate               0.4174bac_PreferredStockDividendRateBasisSpreadonVariableRate
/ us-gaap_StatementClassOfStockAxis
= bac_SeriesZPreferredStockMember
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioForecastMember
/ us-gaap_VariableRateAxis
= bac_A3MonthLondonInterbankOfferedRateLIBORMember