CTOS · XBRL financial data
Custom Truck One Source financial statements, every fiscal year
The same tables from 6 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 years (CTOS's year ends in late December)
| In millions of dollars | Dec 31, 2020 | †Dec 31, 2021 | Dec 31, 2022 | Dec 31, 2023 | Dec 31, 2024 | Dec 31, 2025 |
|---|---|---|---|---|---|---|
| Revenue | 303 | 1,167 | 1,573 | 1,865 | 1,802 | 1,944 |
| Revenue from contracts with customers | 115 | 788 | 1,085 | 1,331 | 1,360 | 1,446 |
| Cost of revenue | 226 | 957 | 1,189 | 1,411 | 1,412 | 1,532 |
| Gross profit | 76 | 210 | 384 | 454 | 390 | 412 |
| Selling, general and administrative | 43 | 156 | 211 | 231 | 230 | 230 |
| Total operating expenses | 59 | 252 | 280 | 283 | 264 | 287 |
| Operating income (loss) | 17 | (42) | 103 | 171 | 126 | 125 |
| Interest expense | — | 5 | 13 | 37 | — | — |
| Other income (expense) | (5) | (1) | 32 | 18 | 12 | 5 |
| Income tax expense (benefit) | (30) | 4 | 8 | 7 | (1) | 3 |
| Net income (loss) | (21) | (182) | 39 | 51 | (29) | (31) |
| Earnings per share, basic USD per share | (0.43) | (0.75) | 0.16 | 0.21 | (0.12) | (0.14) |
| Earnings per share, diluted USD per share | (0.43) | (0.75) | 0.16 | 0.21 | (0.12) | (0.14) |
| Weighted average shares, basic millions of shares | 49 | 241 | 247 | 245 | 237 | 227 |
| Weighted average shares, diluted millions of shares | 49 | 241 | 248 | 246 | 237 | 227 |
- † Share count changed about 5x in the period ending 2021-12-31, likely a stock split with no split ratio in the XBRL data; figures before that column are not adjusted.
Balance sheet
CSVFiscal years (CTOS's year ends in late December)
| In millions of dollars | Dec 31, 2020 | †Dec 31, 2021 | Dec 31, 2022 | Dec 31, 2023 | Dec 31, 2024 | Dec 31, 2025 |
|---|---|---|---|---|---|---|
| Cash and cash equivalents | 3 | 36 | 14 | 10 | 4 | 6 |
| Accounts receivable | 61 | 168 | 193 | 215 | 216 | 196 |
| Inventory | 31 | 411 | 597 | 986 | 1,049 | 931 |
| Prepaid and other current assets | 8 | 13 | 26 | 24 | 24 | 17 |
| Total current assets | 103 | 657 | 868 | 1,266 | 1,301 | 1,159 |
| Property and equipment, net | 6 | — | — | — | — | — |
| Right-of-use asset | 0 | 36 | 29 | 38 | 95 | 111 |
| Goodwill | 238 | 696 | 704 | 704 | 705 | 705 |
| Total assets | 768 | 2,684 | 2,938 | 3,368 | 3,502 | 3,441 |
| Accounts payable | 32 | 91 | 87 | 118 | 88 | 88 |
| Accrued liabilities | 32 | 60 | 69 | 74 | 69 | 69 |
| Current portion of long-term debt | 1 | 6 | 7 | 8 | 8 | 26 |
| Total current liabilities | 71 | 441 | 635 | 897 | 1,001 | 873 |
| Long-term debt | 716 | 1,308 | 1,355 | 1,487 | 1,520 | 1,619 |
| Lease liability, non-current | 0 | 32 | 25 | 33 | 89 | 106 |
| Accumulated deficit | (466) | (647) | (609) | (558) | (587) | (618) |
| Total stockholders' equity | (31) | 859 | 888 | 917 | 861 | 809 |
| Total liabilities and equity | 768 | 2,684 | 2,938 | 3,368 | 3,502 | 3,441 |
| Common shares outstanding (cover page) millions of shares | 49 | 247 | 246 | 240 | 226 | 227 |
- † Share count changed about 5x in the period ending 2021-12-31, likely a stock split with no split ratio in the XBRL data; figures before that column are not adjusted.
Cash flows
CSVFiscal years (CTOS's year ends in late December)
| In millions of dollars | Dec 31, 2020 | †Dec 31, 2021 | Dec 31, 2022 | Dec 31, 2023 | Dec 31, 2024 | Dec 31, 2025 |
|---|---|---|---|---|---|---|
| Net income (loss) | (21) | (182) | 39 | 51 | (29) | (31) |
| Stock-based compensation | 2 | 17 | 12 | 13 | 12 | 8 |
| Depreciation and amortization | 85 | 209 | 223 | 219 | 236 | 264 |
| Net cash from operating activities | 43 | 139 | 46 | (31) | 122 | 310 |
| Net cash from investing activities | (29) | (1,429) | (219) | (177) | (187) | (282) |
| Proceeds from issuing common stock | 0 | 883 | 0 | 0 | — | — |
| Share repurchases | 0 | 0 | 10 | 39 | 29 | 33 |
| Net cash from financing activities | (16) | 1,323 | 154 | 203 | 58 | (25) |
| Net change in cash | (3) | 32 | (22) | (4) | (7) | 2 |
- † Share count changed about 5x in the period ending 2021-12-31, likely a stock split with no split ratio in the XBRL data; figures before that column are not adjusted.
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.