Concrete Pumping Holdings (BBCP) Cost of Revenue (2018 - 2026)
Concrete Pumping Holdings (BBCP) posted Cost of Revenue of $71.53 million for fiscal Q3 2026 (quarter ended Jul 31, 2026), up 13.0% from $63.29 million a year earlier and up 9.1% from the prior quarter.
Concrete Pumping Holdings (BBCP) Cost of Revenue (2018 - 2026) Analysis & Trends
For the trailing twelve months through Jul 31, 2026, Cost of Revenue at Concrete Pumping Holdings was $265.83 million, up 10.1% year-over-year; for FY2025 (ended Oct 31, 2025), it was $241.75 million, down 7.0% from FY2024.
- Annual Cost of Revenue shows a five-year compound annual growth rate of 7.7% (FY2020 to FY2025).
- In prior fiscal years, Concrete Pumping Holdings' Cost of Revenue was $260.04 million in FY2024 (-1.5%), $263.94 million in FY2023 (+11.0%), $237.68 million in FY2022 (+33.5%) and $178.08 million in FY2021 (+6.6%).
- The fiscal Q3 2026 figure stands as the highest quarterly Cost of Revenue in data going back to fiscal Q1 2018.
- On a year-over-year basis, Cost of Revenue increased in three of the last seven quarters, with an average decline of 1.5%.
- The strongest year-over-year quarter for Cost of Revenue in the past five years was fiscal Q3 2022, with growth of 43.6%; the weakest was fiscal Q1 2025, with a decline of 14.3%.
Peer Comparison
| # | Company | Market Cap | Enterprise Value | Gross Profit (Qtr) | Cost of Rev (Qtr) |
|---|---|---|---|---|---|
| 1 | Quanta Services | 92.79 Bn | 90.87 Bn | 1.55 Bn | 8.01 Bn |
| 2 | Ferrovial | 35.38 Bn | 13.63 Bn | - | - |
| 3 | Emcor | 31.89 Bn | 28.28 Bn | 1.02 Bn | 4.13 Bn |
| 4 | Jacobs Solutions | 16.27 Bn | 10.94 Bn | 810.70 Mn | 3.27 Bn |
| 5 | Mastec | 14.89 Bn | 13.67 Bn | 556.28 Mn | 3.82 Bn |
| 6 | Sterling Infrastructure | 12.96 Bn | 11.29 Bn | 289.96 Mn | 878.22 Mn |
| 7 | IES Holdings | 9.98 Bn | 8.84 Bn | 340.66 Mn | 902.04 Mn |
| 8 | Stantec | 7.83 Bn | 6.75 Bn | 1.36 Bn | 1.15 Bn |
| 9 | Aecom | 7.47 Bn | 2.59 Bn | -34.04 Mn | 3.62 Bn |
| 10 | Concrete Pumping Holdings | 455.85 Mn | 288.79 Mn | 45.24 Mn | 71.53 Mn |
Historic Data
| Date | Value |
|---|---|
| Jul 31, 2026 | 71.53 Mn |
| Apr 30, 2026 | 65.54 Mn |
| Oct 31, 2025 | 65.48 Mn |
| Jul 31, 2025 | 63.29 Mn |
| Apr 30, 2025 | 57.78 Mn |
| Jan 31, 2025 | 55.21 Mn |
| Oct 31, 2024 | 65.23 Mn |
| Jul 31, 2024 | 65.11 Mn |
| Apr 30, 2024 | 65.30 Mn |
| Jan 31, 2024 | 64.40 Mn |
| Oct 31, 2023 | 71.31 Mn |
| Jul 31, 2023 | 71.19 Mn |
| Apr 30, 2023 | 64.32 Mn |
| Jan 31, 2023 | 57.12 Mn |
| Oct 31, 2022 | 66.28 Mn |
| Jul 31, 2022 | 62.54 Mn |
| Apr 30, 2022 | 57.54 Mn |
| Jan 31, 2022 | 51.32 Mn |
| Oct 31, 2021 | 50.41 Mn |
| Jul 31, 2021 | 43.55 Mn |
Concrete Pumping Holdings Cost of 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=cost-of-revenue&ticker=BBCP&period=max&api_key=YOUR_API_KEY
import requests
url = "https://data.businessquant.com/historic"
params = {"slug": "cost-of-revenue", "ticker": "BBCP", "period": "max", "api_key": "YOUR_API_KEY"}
data = requests.get(url, params=params).json()
const res = await fetch("https://data.businessquant.com/historic?slug=cost-of-revenue&ticker=BBCP&period=max&api_key=YOUR_API_KEY");
const data = await res.json();