Custom Truck One Source (CTOS) Revenue (2018 - 2026)
Custom Truck One Source (CTOS) reported Revenue of $563.45 million for Q2 2026, up 10.2% from $511.48 million a year earlier and up 22.1% from the prior quarter.
Custom Truck One Source (CTOS) Revenue (2018 - 2026) Analysis & Trends
Over the twelve months ended Jun 30, 2026, Custom Truck One Source's Revenue came in at $2.04 billion, up 7.0% year-over-year; for FY2025, it came in at $1.94 billion, up 7.9% from FY2024.
- Revenue has a five-year compound annual growth rate of 45.1% (FY2020 to FY2025).
- By year, Revenue came in at $1.8 billion in FY2024 (-3.4%), $1.87 billion in FY2023 (+18.6%), $1.57 billion in FY2022 (+34.8%) and $1.17 billion in FY2021 (+285.5%).
- The Q2 2026 figure ranks as the highest quarterly Revenue in data going back to Q1 2018.
- Year over year, Revenue has now increased in each of the last six quarters, with growth averaging 6.9% over the last eight quarters.
- The high point for year-over-year Revenue in five years was Q3 2021 (growth of 415.9%); the low point was Q1 2024 (a decline of 9.0%).
- Per Business Quant data, the three quarters before Q2 2026 came in at $461.62 million (Q1 2026), $528.18 million (Q4 2025) and $482.06 million (Q3 2025).
Peer Comparison
| # | Company | Market Cap | Enterprise Value | Gross Profit (Qtr) | Revenue (Qtr) |
|---|---|---|---|---|---|
| 1 | United Rentals | 65.40 Bn | 64.16 Bn | 1.73 Bn | 4.41 Bn |
| 2 | W.W. Grainger | 63.07 Bn | 60.67 Bn | 1.98 Bn | 5.02 Bn |
| 3 | Fastenal | 59.20 Bn | 58.13 Bn | 1.06 Bn | 2.39 Bn |
| 4 | Ferguson Enterprises | 44.13 Bn | 41.34 Bn | 2.32 Bn | 7.47 Bn |
| 5 | Sunbelt Rentals Holdings | 31.58 Bn | 31.46 Bn | 1.25 Bn | 3.12 Bn |
| 6 | Reliance | 21.32 Bn | 20.36 Bn | 1.30 Bn | 4.63 Bn |
| 7 | Wesco International | 16.71 Bn | 14.03 Bn | 1.46 Bn | 6.67 Bn |
| 8 | Applied Industrial Technologies | 12.36 Bn | 12.23 Bn | 411.22 Mn | 1.35 Bn |
| 9 | Watsco | 11.52 Bn | 9.20 Bn | 578.93 Mn | 2.10 Bn |
| 10 | Custom Truck One Source | 2.07 Bn | 2.03 Bn | 123.97 Mn | 563.45 Mn |
Historic Data
| Date | Value |
|---|---|
| Jun 30, 2026 | 563.45 Mn |
| Mar 31, 2026 | 461.62 Mn |
| Dec 31, 2025 | 528.18 Mn |
| Sep 30, 2025 | 482.06 Mn |
| Jun 30, 2025 | 511.48 Mn |
| Mar 31, 2025 | 422.23 Mn |
| Dec 31, 2024 | 520.74 Mn |
| Sep 30, 2024 | 447.22 Mn |
| Jun 30, 2024 | 423.01 Mn |
| Mar 31, 2024 | 411.31 Mn |
| Dec 31, 2023 | 521.75 Mn |
| Sep 30, 2023 | 434.35 Mn |
| Jun 30, 2023 | 456.83 Mn |
| Mar 31, 2023 | 452.16 Mn |
| Dec 31, 2022 | 486.72 Mn |
| Sep 30, 2022 | 357.78 Mn |
| Jun 30, 2022 | 362.11 Mn |
| Mar 31, 2022 | 366.48 Mn |
| Dec 31, 2021 | 356.44 Mn |
| Sep 30, 2021 | 357.31 Mn |
Custom Truck One Source Revenue 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=revenue&ticker=CTOS&period=max&api_key=YOUR_API_KEY
import requests
url = "https://data.businessquant.com/historic"
params = {"slug": "revenue", "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=revenue&ticker=CTOS&period=max&api_key=YOUR_API_KEY");
const data = await res.json();