Custom Truck One Source, Inc.
CTOSdata completeness 88%9 fiscal years on fileData notes: no data for concept 'capex'
Custom Truck One Source, Inc. earns about -0% on invested capital, and has bought back 6% of its shares over 5 years. The cash-flow models don't apply cleanly here — the ledger says why below.Whether it’s worth owning at today’s price is the last question — and yours to answer, below.
| Figure | FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 |
|---|---|---|---|---|---|
| Revenue | $788.5M1 | $1.08B2 | $1.33B3 | $1.36B3 | $1.45B3 |
| Net income | −$181.5M4 | $38.9M5 | $50.7M6 | −$28.7M6 | −$31.1M6 |
| Operating cash flow | $138.9M7 | $46M8 | −$30.9M9 | $122M9 | $310.1M9 |
| Capital expenditure | — | — | — | — | — |
| Free cash flow (derived) | — | — | — | — | — |
| Total debt | $2.63B10 | $2.72B11 | $2.99B12 | $3.06B13 | $3.29B13 |
| Cash & equivalents | $35.9M14 | $14.4M15 | $10.3M16 | $3.81M17 | $6.27M17 |
| Diluted shares | 241.4M | 247.7M | 245.7M | 237.0M | 227.0M |
Superscripts are receipts. Each links to the SEC filing the number came from (full list at the bottom).
10 shares is a claim on $35.65 of net worth that earned you −$1.37 last year, against $144.98 of debt.
It earned an average -0% on invested capital over 5 years. Compare that to what it costs to fund the business.
seeing a moat in the numbers →Share count is down 6% over 5 years — management has been buying back stock, quietly handing owners a bigger slice. Total debt has risen 25% over the same window.
reading capital allocation →Signals, not verdicts — read from the filings above. Numbers don’t prove a moat; they show its footprint. You decide.
Different models answer different questions — which to trust when →
- 10-K · period ending 2021-12-31 · accession 0001709682-24-000010 (RevenueFromContractWithCustomerExcludingAssessedTax)
- 10-K · period ending 2022-12-31 · accession 0001709682-25-000006 (RevenueFromContractWithCustomerExcludingAssessedTax)
- 10-K · period ending 2023-12-31 · accession 0001709682-26-000008 (RevenueFromContractWithCustomerExcludingAssessedTax)
- 10-K · period ending 2021-12-31 · accession 0001709682-24-000010 (NetIncomeLoss)
- 10-K · period ending 2022-12-31 · accession 0001709682-25-000006 (NetIncomeLoss)
- 10-K · period ending 2023-12-31 · accession 0001709682-26-000008 (NetIncomeLoss)
- 10-K · period ending 2021-12-31 · accession 0001709682-24-000010 (NetCashProvidedByUsedInOperatingActivities)
- 10-K · period ending 2022-12-31 · accession 0001709682-25-000006 (NetCashProvidedByUsedInOperatingActivities)
- 10-K · period ending 2023-12-31 · accession 0001709682-26-000008 (NetCashProvidedByUsedInOperatingActivities)
- 10-K · period ending 2021-12-31 · accession 0001709682-23-000008 (LongTermDebtNoncurrent)
- 10-K · period ending 2022-12-31 · accession 0001709682-24-000010 (LongTermDebtNoncurrent)
- 10-K · period ending 2023-12-31 · accession 0001709682-25-000006 (LongTermDebtNoncurrent)
- 10-K · period ending 2024-12-31 · accession 0001709682-26-000008 (LongTermDebtNoncurrent)
- 10-K · period ending 2021-12-31 · accession 0001709682-23-000008 (CashAndCashEquivalentsAtCarryingValue)
- 10-K · period ending 2022-12-31 · accession 0001709682-24-000010 (CashAndCashEquivalentsAtCarryingValue)
- 10-K · period ending 2023-12-31 · accession 0001709682-25-000006 (CashAndCashEquivalentsAtCarryingValue)
- 10-K · period ending 2024-12-31 · accession 0001709682-26-000008 (CashAndCashEquivalentsAtCarryingValue)