Bank Of America (BAC) Return on Sales [ROS] (2009 - 2025)
Bank Of America (BAC) recorded Return on Sales [ROS] of 89.38% in Q3 2026, down 15.79 percentage points from 105.17% a year earlier and down 3.79 percentage points from the prior quarter.
Bank Of America (BAC) Return on Sales [ROS] (2009 - 2025) Analysis & Trends
On a TTM basis, Bank Of America's Return on Sales [ROS] came in at 93.48% as of Sep 30, 2026, down 12.37 percentage points year-over-year; for FY2025, it was 102.71%, down 14.21 percentage points from FY2024.
- Annual Return on Sales [ROS] has a five-year change of +70.89 percentage points (FY2020 to FY2025).
- Across earlier years, Return on Sales [ROS] came in at 116.92% in FY2024 (+13.91 pp), 103.01% in FY2023 (+49.22 pp), 53.79% in FY2022 (+10.34 pp) and 43.44% in FY2021 (+11.62 pp).
- The Q3 2026 figure is the lowest quarterly Return on Sales [ROS] since Q1 2023.
- On a year-over-year basis, Return on Sales [ROS] has declined for seven consecutive quarters, with an average year-over-year change of -11.71 percentage points over the last eight quarters.
- Peak year-over-year performance for Return on Sales [ROS] in the last five years was a gain of 62.57 percentage points in Q2 2023, against a drop of 16.54 percentage points in Q3 2025 at the low end.
- Per Business Quant, the preceding three quarters came in at 93.16% (Q2 2026), 92.55% (Q1 2026) and 99.18% (Q4 2025).
Peer Comparison
| # | Company | Market Cap | Enterprise Value | Gross Profit (Qtr) | ROS (Yr) |
|---|---|---|---|---|---|
| 1 | Jpmorgan Chase | 896.53 Bn | 896.53 Bn | - | 93.45% |
| 2 | Bank Of America | 354.20 Bn | -2,021.91 Bn | - | 102.71% |
| 3 | Hsbc Holdings | 303.54 Bn | -1,800.05 Bn | - | 37.33% |
| 4 | Royal Bank Of Canada | 283.29 Bn | -546.75 Bn | - | 144.85% |
| 5 | Morgan Stanley | 281.19 Bn | -262.84 Bn | - | 100.46% |
| 6 | Goldman Sachs | 256.26 Bn | -3,487.19 Bn | - | 152.13% |
| 7 | Wells Fargo & Company | 253.33 Bn | 253.33 Bn | - | 77.69% |
| 8 | Mitsubishi Ufj Financial | 238.77 Bn | -102.62 Bn | 10.89 Bn | 42.08% |
| 9 | American Express | 216.03 Bn | 15.51 Bn | - | 30.50% |
| 10 | Toronto Dominion Bank | 211.21 Bn | -464.66 Bn | - | 6.79% |
Historic Data
| Date | Value |
|---|---|
| Dec 31, 2025 | 102.71% |
| Dec 31, 2024 | 116.92% |
| Dec 31, 2023 | 103.01% |
| Dec 31, 2022 | 53.79% |
| Dec 31, 2021 | 43.44% |
| Dec 31, 2020 | 31.83% |
| Dec 31, 2019 | 60.39% |
| Dec 31, 2018 | 58.44% |
| Dec 31, 2017 | 47.69% |
| Dec 31, 2016 | 41.79% |
| Dec 31, 2015 | 39.46% |
| Dec 31, 2014 | 22.00% |
| Dec 31, 2013 | 32.52% |
| Dec 31, 2012 | 23.78% |
| Dec 31, 2011 | 22.89% |
| Dec 31, 2010 | 20.55% |
| Dec 31, 2009 | 29.39% |
Bank Of America Return on Sales [ROS] API
Pull this series into your own models, spreadsheets and apps with the Business Quant
Historical Metrics API. The request below matches the chart above — change the
frequency, period or values and it follows. Swap YOUR_API_KEY for your own key.
https://data.businessquant.com/historic?slug=return-on-sales-%5Bros%5D-annual&ticker=BAC&period=max&api_key=YOUR_API_KEY
import requests
url = "https://data.businessquant.com/historic"
params = {"slug": "return-on-sales-[ros]-annual", "ticker": "BAC", "period": "max", "api_key": "YOUR_API_KEY"}
data = requests.get(url, params=params).json()
const res = await fetch("https://data.businessquant.com/historic?slug=return-on-sales-%5Bros%5D-annual&ticker=BAC&period=max&api_key=YOUR_API_KEY");
const data = await res.json();