BBCP · XBRL financial data
Concrete Pumping Holdings financial statements, every fiscal year
The same tables from 7 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 (BBCP's year ends in late October)
| In thousands of dollars | Oct 31, 2020 | Oct 31, 2021 | Oct 31, 2022 | Oct 31, 2023 | Oct 31, 2024 | Oct 31, 2025 |
|---|---|---|---|---|---|---|
| Revenue | 304,301 | 315,808 | 401,292 | 442,241 | 425,872 | 392,867 |
| Revenue from contracts with customers | — | — | 25,564 | 411,247 | 391,346 | 356,247 |
| Cost of revenue | 166,998 | 178,081 | 237,682 | 263,937 | 260,038 | 241,751 |
| Gross profit | 137,303 | 137,727 | 163,610 | 178,304 | 165,834 | 151,116 |
| General and administrative | 111,087 | 99,369 | 113,181 | 116,852 | 116,487 | 109,585 |
| Operating income (loss) | (31,728) | 38,046 | 50,111 | 61,452 | 49,347 | 41,531 |
| Interest expense | 34,408 | 25,190 | 25,891 | 28,119 | 25,572 | 31,570 |
| Other income (expense) | 169 | 117 | 88 | 330 | 406 | 335 |
| Income tax expense (benefit) | (4,977) | 2,642 | 5,526 | 8,772 | 8,104 | 3,679 |
| Net income (loss) | (61,251) | (15,073) | 28,676 | 31,790 | 16,207 | 6,373 |
| Earnings per share, basic USD per share | (1.20) | (0.31) | 0.48 | 0.54 | 0.27 | 0.09 |
| Earnings per share, diluted USD per share | (1.20) | (0.31) | 0.47 | 0.54 | 0.26 | 0.09 |
| Weighted average shares, basic thousands of shares | 52,753 | 53,414 | 53,914 | 53,276 | 53,543 | 52,142 |
| Weighted average shares, diluted thousands of shares | 52,753 | 53,414 | 54,851 | 54,174 | 54,238 | 52,686 |
Balance sheet
CSVFiscal years (BBCP's year ends in late October)
Cash flows
CSVFiscal years (BBCP's year ends in late October)
| In thousands of dollars | Oct 31, 2020 | Oct 31, 2021 | Oct 31, 2022 | Oct 31, 2023 | Oct 31, 2024 | Oct 31, 2025 |
|---|---|---|---|---|---|---|
| Net income (loss) | (61,251) | (15,073) | 28,676 | 31,790 | 16,207 | 6,373 |
| Stock-based compensation | 11,454 | 6,591 | 5,034 | 3,847 | 2,394 | 2,048 |
| Depreciation and amortization | 28,264 | 28,795 | 34,912 | — | 57,110 | 53,543 |
| Net cash from operating activities | 78,970 | 75,835 | 76,695 | 96,875 | 86,900 | 64,315 |
| Purchases of property and equipment | 39,339 | 62,792 | 101,932 | 54,505 | 43,810 | 46,787 |
| Net cash from investing activities | (35,853) | (56,565) | (124,121) | (44,158) | (32,131) | (37,295) |
| Share repurchases | 131 | 330 | 4,148 | 10,505 | 10,160 | 14,167 |
| Dividends paid | — | — | — | — | 0 | 53,132 |
| Net cash from financing activities | (43,928) | (15,954) | 45,978 | (44,296) | (28,768) | (25,757) |
| Net change in cash | (737) | 2,562 | (1,816) | 8,379 | 27,180 | 1,353 |
Compare with peers
SIC 1700 and related industry codes, similar size. Each row is the latest quarter reported.
How peers are chosen
- SIC 1700 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.
- Runway shows only for companies burning cash with under $10B of public float.
- * marks a quarter worked out from the filing totals: for a 10-K, the year less the first three quarters; for a 10-Q, the year-to-date total less the earlier one.
- A cell reading “not reported” means the filings give no figure for that quarter alone.
| Company | Cash ($K) | Revenue, quarter ($K) | Operating cash flow, quarter ($K) | Shares outstanding | Runway | Quarter |
|---|---|---|---|---|---|---|
| Concrete Pumping Holdings | 42,976 | 106,527 | 24,138* | 50.4M | — | 10-QJul 31, 2026 |
| SunPower | 4,075 | 54,858 | (26,523)* | 208.8M | 0.2 quarters | 10-QJun 28, 2026 |
| ConnectM Technology Solutions | 2,394 | 9,794 | not reported | 5.7M | — | 10-QJun 30, 2026 |
| Matrix Service | 222,966 | 244,531* | (8,810)* | 28.3M | 25.3 quarters | 10-KJun 30, 2026 |
| SolarMax Technology | 2,158 | 10,244 | (969)* | 4.7M | 38.3 quarters | 10-QJun 30, 2026 |
| Ameresco | 138,333 | 515,464 | (107,209)* | not reported | 1.3 quarters | 10-QJun 30, 2026 |
Not investment advice. Not affiliated with the U.S. SEC.