Morgan Stanley (MS) Return on Sales [ROS] (2009 - 2025)
Morgan Stanley (MS) posted Return on Sales [ROS] of 95.89% for Q2 2026, down 6.42 percentage points from 102.31% a year earlier but up 0.74 percentage points from the prior quarter.
Morgan Stanley (MS) Return on Sales [ROS] (2009 - 2025) Analysis & Trends
For the trailing twelve months through Jun 30, 2026, Return on Sales [ROS] at Morgan Stanley was 98.54%, down 1.52 percentage points year-over-year; for FY2025, it was 100.46%, down 1.74 percentage points from FY2024.
- Annual Return on Sales [ROS] shows a five-year change of +63.00 percentage points (FY2020 to FY2025).
- In prior years, Morgan Stanley's Return on Sales [ROS] was 102.20% in FY2024 (+10.90 pp), 91.30% in FY2023 (+42.19 pp), 49.11% in FY2022 (+13.91 pp) and 35.20% in FY2021 (-2.26 pp).
- Quarterly Return on Sales [ROS] has run from a low of 33.93% in Q1 2022 to a high of 105.38% in Q3 2024 over five years.
- On a year-over-year basis, Return on Sales [ROS] increased in two of the last eight quarters, with an average year-over-year change of -1.52 percentage points.
- The strongest year-over-year quarter for Return on Sales [ROS] in the past five years was Q2 2023, with a gain of 51.65 percentage points; the weakest was Q1 2025, with a drop of 7.11 percentage points.
- According to Business Quant data, Return on Sales [ROS] for the three prior quarters was 95.15% (Q1 2026), 99.83% (Q4 2025) and 104.22% (Q3 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 | 100.46% |
| Dec 31, 2024 | 102.20% |
| Dec 31, 2023 | 91.30% |
| Dec 31, 2022 | 49.11% |
| Dec 31, 2021 | 35.20% |
| Dec 31, 2020 | 37.47% |
| Dec 31, 2019 | 57.07% |
| Dec 31, 2018 | 53.17% |
| Dec 31, 2017 | 42.43% |
| Dec 31, 2016 | 35.13% |
| Dec 31, 2015 | 31.96% |
| Dec 31, 2014 | 21.21% |
| Dec 31, 2013 | 27.66% |
| Dec 31, 2012 | 24.80% |
| Dec 31, 2011 | 23.21% |
| Dec 31, 2010 | 40.36% |
| Dec 31, 2009 | 33.58% |
Morgan Stanley 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=MS&period=max&api_key=YOUR_API_KEY
import requests
url = "https://data.businessquant.com/historic"
params = {"slug": "return-on-sales-[ros]-annual", "ticker": "MS", "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=MS&period=max&api_key=YOUR_API_KEY");
const data = await res.json();