CTOS · XBRL financial data
Custom Truck One Source financial statements, every quarter
The same tables from 12 filings, lined up. Matched by XBRL tag: renamed lines keep their history.
How these numbers work
- Every number comes from the company's XBRL financial data filed with the SEC, and each one links to its filing.
- Lines are matched by XBRL tag, so a line renamed between filings keeps its history.
- * marks a quarter worked out from the filing totals: the 10-K year minus the first three quarters, or a year-to-date total minus the earlier one. Fourth-quarter earnings per share is fourth-quarter net income over the fourth-quarter weighted shares.
- 0 means a filing states zero; a dash (—) means no filing states that number.
- “year only” means the 10-K gives the full year but not the quarters needed to work out the fourth. A worked-out quarter of revenue, cost of revenue or operating cash flow more than twice the company's largest quarter of the two years before is shown this way too.
- Gross profit is shown as the company reports it; a worked-out quarter must equal revenue less cost of revenue for that quarter, or it is a dash.
- Operating income can be above gross profit when the company books other operating income between the two, shown on its own line.
- Shares outstanding come from each filing's cover page, as of the date printed there.
- Quarters are fiscal: Q2 FY27 is the second quarter of the company's fiscal 2027.
Income statement
CSVFiscal quarters (CTOS's year ends in late December)
| In millions of dollars | Dec 31, 2023 | Mar 31, 2024 | Jun 30, 2024 | Sep 30, 2024 | Dec 31, 2024 | Mar 31, 2025 | Jun 30, 2025 | Sep 30, 2025 | Dec 31, 2025 | Mar 31, 2026 | Jun 30, 2026 | Sep 30, 2026 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue | 522* | 411 | 423 | 447 | 521* | 422 | 511 | 482 | 528* | 462 | 563 | 495 |
| Revenue from contracts with customers | 400* | 304 | 321 | 338 | 398* | 307 | 392 | 360 | 387* | 329 | 418 | 350 |
| Cost of revenue | 395* | 321 | 334 | 355 | 402* | 337 | 409 | 381 | 405* | 359 | 439 | 382 |
| Gross profit | 127* | 91 | 89 | 92 | 118* | 86 | 103 | 101 | 123* | 103 | 124 | 113 |
| Selling, general and administrative | 59* | 58 | 56 | 55 | 61* | 59 | 59 | 55 | 57* | 58 | 61 | 56 |
| Total operating expenses | 73* | 72 | 72 | 69 | 51* | 73 | 75 | 68 | 71* | 72 | 77 | 75 |
| Operating income (loss) | 53* | 18 | 18 | 23 | 67* | 12 | 28 | 33 | 52* | 31 | 47 | 38 |
| Interest expense | 12* | 13 | 15 | 17 | — | — | — | — | — | — | — | — |
| Other income (expense) | 4* | 3 | 3 | 3 | 2* | 1 | 1 | 1 | 1* | (0) | 1 | 0 |
| Income tax expense (benefit) | 5* | (2) | 3 | (1) | (1)* | (8) | 17 | (1) | (6)* | 0 | (1) | (1) |
| Net income (loss) | 16* | (14) | (24) | (17) | 28* | (18) | (28) | (6) | 21* | (4) | 10 | 2 |
| Earnings per share, basic USD per share | 0.07* | (0.06) | (0.10) | (0.07) | 0.12* | (0.08) | (0.13) | (0.03) | 0.09* | (0.02) | 0.05 | 0.01 |
| Earnings per share, diluted USD per share | 0.07* | (0.06) | (0.10) | (0.07) | 0.12* | (0.08) | (0.13) | (0.03) | 0.09* | (0.02) | 0.05 | 0.01 |
| Weighted average shares, basic millions of shares | 242* | 240 | 240 | 234 | 233* | 228 | 226 | 227 | 227* | 227 | 227 | 227 |
| Weighted average shares, diluted millions of shares | 242* | 240 | 240 | 234 | 233* | 228 | 226 | 227 | 227* | 227 | 230 | 230 |
Balance sheet
CSVFiscal quarters (CTOS's year ends in late December)
Cash flows
CSVFiscal quarters (CTOS's year ends in late December)
| In millions of dollars | Dec 31, 2023 | Mar 31, 2024 | Jun 30, 2024 | Sep 30, 2024 | Dec 31, 2024 | Mar 31, 2025 | Jun 30, 2025 | Sep 30, 2025 | Dec 31, 2025 | Mar 31, 2026 | Jun 30, 2026 | Sep 30, 2026 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Net income (loss) | 16* | (14) | (24) | (17) | 28* | (18) | (28) | (6) | 21* | (4) | 10 | 2 |
| Stock-based compensation | 3* | 3 | 4* | 2* | 3* | 2 | 2* | 2* | 2* | 1 | 3* | 3* |
| Depreciation and amortization | 57* | 56 | 58* | 59* | 63* | 62 | 66* | 67* | 69* | 68 | 69* | 69* |
| Net cash from operating activities | (28)* | (14) | 38* | 17* | 82* | 56 | 126* | 81* | 47* | 24 | 44* | 163* |
| Net cash from investing activities | (31)* | (33) | (65)* | (66)* | (23)* | (71) | (69)* | (94)* | (49)* | (59) | (47)* | (127)* |
| Proceeds from issuing common stock | year only | — | — | — | — | — | — | — | — | — | — | — |
| Share repurchases | 19* | 7 | 16* | 6* | 0* | 33 | 0* | 0* | 0* | 0 | 0* | 0* |
| Net cash from financing activities | 60* | 45 | 27* | 50* | (64)* | 17 | (57)* | 20* | (6)* | 39 | 3* | (33)* |
| Net change in cash | 2* | (2) | 0* | 0* | (5)* | 2 | (0)* | 8* | (7)* | 3 | 1* | 4* |
Compare with peers
SIC 7359 and related industry codes, similar size. Each row is the latest quarter reported.
How peers are chosen
- SIC 7359 and related industry codes with public float (or, where float is missing, quarterly revenue) between 0.2x and 5x the company's.
- Each row is the latest quarter the company has reported, named in the Quarter column; when that filing is a 10-K, it is the fourth quarter, never the full year.
- * marks a quarter worked out from the filing totals: for a 10-Q, the year-to-date total less the earlier one.
| Company | Cash ($M) | Revenue, quarter ($M) | Operating cash flow, quarter ($M) | Shares outstanding | Quarter |
|---|---|---|---|---|---|
| Custom Truck One Source | 15 | 350 | 163* | 227.2M | 10-QSep 30, 2026 |
| Aircastle | 173 | 283 | 141* | 17,840 | 10-QAug 31, 2026 |
| McGrath Rentcorp | 1 | 275 | 72* | 24.4M | 10-QSep 30, 2026 |
| EquipmentShare.com | 443 | 1,449 | 58* | not reported | 10-QJun 30, 2026 |
| Sunbelt Rentals Holdings | 32 | 701 | 840 | 409.8M | 10-QJul 31, 2026 |
| NPK International | 4.2 | 76 | 7.1* | 83.9M | 10-QSep 30, 2026 |
| PROG Holdings | 109 | 144 | 108* | 39.0M | 10-QSep 30, 2026 |
| Upbound Group | 125 | 1,146 | 163* | 58.3M | 10-QSep 30, 2026 |
Not investment advice. Not affiliated with the U.S. SEC.