Custom Truck One Source (CTOS) Operating Income (2017 - 2026)
Custom Truck One Source (CTOS) posted Operating Income of $46.62 million for Q2 2026, up 66.9% from $27.93 million a year earlier and up 48.1% from the prior quarter.
Custom Truck One Source (CTOS) Operating Income (2017 - 2026) Analysis & Trends
For the trailing twelve months through Jun 30, 2026, Operating Income at Custom Truck One Source was $162.69 million, up 24.5% year-over-year; for FY2025, it was $124.94 million, down 1.1% from FY2024.
- Annual Operating Income shows a five-year compound annual growth rate of 48.6% (FY2020 to FY2025).
- In prior years, Custom Truck One Source's Operating Income was $126.36 million in FY2024 (-26.1%), $170.95 million in FY2023 (+65.5%), $103.31 million in FY2022 and -$41.97 million in FY2021.
- Quarterly Operating Income has run from a low of -$5.32 million in Q3 2021 to a high of $67.28 million in Q4 2024 over five years.
- On a year-over-year basis, Operating Income increased in five of the last eight quarters, with growth averaging 31.4%.
- The strongest year-over-year quarter for Operating Income in the past five years was Q4 2022, with growth of 424.8%; the weakest was Q2 2024, with a decline of 55.3%.
- According to Business Quant data, Operating Income for the three prior quarters was $31.47 million (Q1 2026), $51.98 million (Q4 2025) and $32.63 million (Q3 2025).
Peer Comparison
| # | Company | Market Cap | Enterprise Value | Gross Profit (Qtr) | Op. Inc (Qtr) |
|---|---|---|---|---|---|
| 1 | United Rentals | 65.40 Bn | 64.16 Bn | 1.73 Bn | 1.14 Bn |
| 2 | W.W. Grainger | 63.07 Bn | 60.67 Bn | 1.98 Bn | 807.00 Mn |
| 3 | Fastenal | 59.20 Bn | 58.13 Bn | 1.06 Bn | 501.80 Mn |
| 4 | Ferguson Enterprises | 44.13 Bn | 41.34 Bn | 2.32 Bn | 612.00 Mn |
| 5 | Sunbelt Rentals Holdings | 31.58 Bn | 31.46 Bn | 1.25 Bn | 691.00 Mn |
| 6 | Reliance | 21.32 Bn | 20.36 Bn | 1.30 Bn | 441.60 Mn |
| 7 | Wesco International | 16.71 Bn | 14.03 Bn | 1.46 Bn | 382.20 Mn |
| 8 | Applied Industrial Technologies | 12.36 Bn | 12.23 Bn | 411.22 Mn | 159.31 Mn |
| 9 | Watsco | 11.52 Bn | 9.20 Bn | 578.93 Mn | 238.37 Mn |
| 10 | Custom Truck One Source | 2.07 Bn | 2.03 Bn | 123.97 Mn | 46.62 Mn |
Historic Data
| Date | Value |
|---|---|
| Jun 30, 2026 | 46.62 Mn |
| Mar 31, 2026 | 31.47 Mn |
| Dec 31, 2025 | 51.98 Mn |
| Sep 30, 2025 | 32.63 Mn |
| Jun 30, 2025 | 27.93 Mn |
| Mar 31, 2025 | 12.41 Mn |
| Dec 31, 2024 | 67.28 Mn |
| Sep 30, 2024 | 23.04 Mn |
| Jun 30, 2024 | 17.67 Mn |
| Mar 31, 2024 | 18.37 Mn |
| Dec 31, 2023 | 53.47 Mn |
| Sep 30, 2023 | 38.01 Mn |
| Jun 30, 2023 | 39.58 Mn |
| Mar 31, 2023 | 39.89 Mn |
| Dec 31, 2022 | 51.65 Mn |
| Sep 30, 2022 | 23.11 Mn |
| Jun 30, 2022 | 18.75 Mn |
| Mar 31, 2022 | 9.81 Mn |
| Dec 31, 2021 | 9.84 Mn |
| Sep 30, 2021 | -5.32 Mn |
Custom Truck One Source Operating Income 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=operating-income&ticker=CTOS&period=max&api_key=YOUR_API_KEY
import requests
url = "https://data.businessquant.com/historic"
params = {"slug": "operating-income", "ticker": "CTOS", "period": "max", "api_key": "YOUR_API_KEY"}
data = requests.get(url, params=params).json()
const res = await fetch("https://data.businessquant.com/historic?slug=operating-income&ticker=CTOS&period=max&api_key=YOUR_API_KEY");
const data = await res.json();