Stocks · Industrials · Industrial - Pollution & Treatment Controls
CECO Environmental Corp. CECO
$73.66 +2.49% Close, Oct 2, 2026 · NASDAQ · Market cap $4.30B
Expensive vs sector
Next earnings report: Oct 27, 2026
Scroll or pinch to zoom, drag to move. Daily prices adjusted for splits. Markers: E = earnings (green beat, red miss), S = split, D = dividend.
Three things to know
- Diluted EPS over the last four quarters was $-0.60, down 142.0% year over year.
- Operating margin narrowed to 1.1% from 15.0% a year earlier.
- The diluted share count rose 18.5% in a year.
PromtFinance scores
Each score is a percentile within the Industrials sector (0–100). Under each score: how the stock ranks in its sector on every component. As of Oct 5, 2026.
How fast revenue, earnings and cash flow are growing.
- Revenue growth (TTM, YoY)Top 11%
- EPS growth (TTM, YoY)Bottom 8%
- FCF growth (TTM, YoY)Bottom 1%
- Revenue growth, 3-year CAGRTop 12%
- Revenue growth accelerationTop 19%
Returns on capital, margins, earnings quality and balance-sheet strength.
- Return on invested capitalBottom 27%
- Gross marginTop 39%
- Operating marginBottom 27%
- Accruals (lower is better)Bottom 22%
- Net debt / EBITDA (lower is better)Bottom 1%
- Interest coverBottom 28%
How cheap the shares are relative to earnings, cash flow and their own history.
- Earnings yieldBottom 30%
- Free-cash-flow yieldBottom 27%
- EBITDA / enterprise valueBottom 19%
- Sales / enterprise valueBottom 16%
Strength and persistence of the price trend, including versus the S&P 500.
- 12-month return excluding last monthTop 26%
- 6-month returnTop 30%
- 1-year return vs S&P 500Top 24%
- Distance from 52-week highBottom 45%
- Trend checklist (0–4)Top 10%
Earnings surprises and analyst sentiment (estimate-revision history is being collected).
- Average EPS surprise, last 4 quartersTop 10%
- Consecutive EPS beatsTop 45%
- Share of analysts rating BuyTop 30%
- Upside to consensus price targetTop 32%
Low volatility, shallow drawdowns, low market sensitivity and modest leverage.
- Volatility, 60 days (lower is better)Bottom 26%
- Maximum drawdown, 3 yearsTop 45%
- Beta vs S&P 500 (lower is better)Top 35%
- Net debt / EBITDA (lower is better)Bottom 1%
What changed
Latest four quarters versus the same period a year earlier (growth: versus one quarter earlier).
| Measure | Before | Now | |
|---|---|---|---|
| Revenue growth (YoY) | 33.5% | 39.0% | ↑ |
| EPS growth (YoY) | -64.2% | -142.0% | ↓ |
| Gross margin | 35.2% | 32.7% | ↓ |
| Operating margin | 15.0% | 1.1% | ↓ |
| FCF margin | 0.1% | -1.2% | ↓ |
Fundamental momentum
| Measure | Now (TTM) | Year / quarter before | Sector rank | |
|---|---|---|---|---|
| Revenue growth (TTM, YoY) | 39.0% | 33.5% | ↑ | Top 11% |
| EPS growth (TTM, YoY) | -142.0% | -64.2% | ↓ | Bottom 8% |
| Gross margin | 32.7% | 35.2% | ↓ | Top 39% |
| Operating margin | 1.1% | 15.0% | ↓ | Bottom 27% |
| Net margin | -3.0% | 8.0% | ↓ | — |
| Free-cash-flow margin | -1.2% | 0.1% | ↓ | — |
| Return on invested capital | 0.3% | — | Bottom 27% | |
| Revenue growth, 3-year CAGR | 22.4% | — | Top 12% |
Quality of earnings and balance sheet
- Accruals (net income − OCF) / assetsLower is better; high accruals can signal weaker earnings quality.
- -1.0%
- Stock-based compensation / revenueA cost to shareholders through dilution.
- 3.6%
- Receivables growth vs revenue growthReceivables growing much faster than sales can be a warning.
- +42.6 pp
- Net debt / EBITDABelow 1× is conservative; above 3× is high leverage.
- 39.61×
- Interest cover (operating income / interest)How many times operating profit covers interest.
- 0.4×
Shareholder returns
- Dividend yield (dividends paid, TTM)
- 0.04%
- Net buyback yield (TTM)
- -0.11%
- Shareholder yield
- -0.07%
- Share count change, 1 year
- +18.5%
- Share count change, 3-year CAGR
- +7.2%
Shareholder yield = dividends + net buybacks over the last four quarters, divided by market cap.
Based on the four quarters through Jun 30, 2026 (filed Aug 10, 2026).
Earnings and expectations
Earnings momentum
- Consecutive EPS beats
- 2
- Beats in the last 8 reports
- 5 of 8
- Average EPS surprise, last 4
- +64.5%
- Average 2-day reaction, last 8
- +2.1%
- Positive 20 days after report
- 7 of 8
Analysts
- Consensus price target
- $106.80
- Target vs current price
- +45.0%
- Analysts with a rating
- 16
- Share rating Buy or Strong Buy
- 69%
- Consensus rating
- Buy
How the stock reacted to recent reports
| Report date | EPS surprise | 2 days | 5 days | 20 days | 60 days |
|---|---|---|---|---|---|
| Aug 10, 2026 | +84.3% | -0.8% | +12.2% | +4.5% | — |
| Apr 28, 2026 | +200.0% | +14.4% | +20.4% | +38.4% | +22.6% |
| Feb 24, 2026 | -30.2% | -22.8% | -25.6% | -24.8% | +0.8% |
| Oct 29, 2025 | +4.0% | -0.9% | +10.6% | +6.2% | +44.8% |
| Jul 29, 2025 | +20.0% | +16.2% | +29.2% | +37.0% | +45.3% |
| Apr 29, 2025 | +0.0% | +16.4% | +32.1% | +48.3% | +76.5% |
| Feb 25, 2025 | +22.7% | +8.2% | +7.4% | +11.0% | +22.7% |
| Oct 29, 2024 | -36.4% | -14.3% | -13.5% | +25.4% | +7.8% |
Returns from the close before each report. Past reactions do not determine future ones.
Earnings history
| Report date | EPS | Estimate | Surprise | Revenue |
|---|---|---|---|---|
| Aug 10, 2026 | $0.47 | $0.26 | +84.3% | $285.0M |
| Apr 28, 2026 | $0.36 | $0.12 | +200.0% | $205.9M |
| Feb 24, 2026 | $0.30 | $0.43 | -30.2% | $214.7M |
| Oct 29, 2025 | $0.26 | $0.25 | +4.0% | $197.6M |
| Jul 29, 2025 | $0.24 | $0.20 | +20.0% | $185.4M |
| Apr 29, 2025 | $0.10 | $0.10 | +0.0% | $176.7M |
| Feb 25, 2025 | $0.27 | $0.22 | +22.7% | $158.6M |
| Oct 29, 2024 | $0.14 | $0.22 | -36.4% | $135.5M |
Valuation in context
| Multiple | Now | 5-year median | 5-year percentile | Sector rank (cheapness) |
|---|---|---|---|---|
| P/E (forward) | 32.1× | — | — | — |
| EV / EBITDA | 282.5× | — | — | Bottom 19% |
| EV / Sales | 5.49× | — | — | Bottom 16% |
| Free-cash-flow yield | -0.26% | — | — | Bottom 27% |
| Earnings yield | -0.81% | — | — | Bottom 30% |
P/E over the past five years
Range 17.4× – 179.0× since Jun 30, 2021. Each point: price on the filing date divided by trailing-twelve-month EPS known then.
What moved the stock over the past year
- Price return, 1 year
- +41.9%
- Earnings per share growth (TTM)
- -142.0%
- Change in P/E multiple
- +826.0%
Most of the move came from a change in the valuation multiple.
Technical state
Trend checklist
- ✓ Price above 20-day average
- ✓ Price above 50-day average
- ✓ Price above 200-day average
- ✓ 50-day average above 200-day
- ✓ MACD histogram positive
Trend quality
- Days above the 50-day average
- 1
- Days above the 200-day average
- 1
- 50-day average slope (20 days)
- -5.6%
- 200-day average slope (20 days)
- +2.7%
- Distance from 50-day average
- +2.0%
- Distance from 200-day average
- +2.3%
- RSI (14)
- 51.9
- Relative volume
- 1.06×
Risk and drawdowns
- Volatility, 60 days (annualized)
- 62.5%
- Volatility vs own 5-year history
- 82th percentile · High for this stock
- Beta vs S&P 500 (2 years, weekly)
- 0.90
- Correlation with S&P 500
- 0.23
- Current drawdown from 1-year high
- -26.1%
- Maximum drawdown, 3 years
- -47.9%
Largest declines in the past six years
| From peak | To low | Decline | Length | Recovery |
|---|---|---|---|---|
| Mar 8, 2021 | May 9, 2022 | -54.4% | 296 days | 64 days (Aug 10, 2022) |
| Dec 11, 2024 | Apr 21, 2025 | -47.9% | 87 days | 66 days (Jul 25, 2025) |
| Jun 22, 2026 | Jul 29, 2026 | -40.0% | 26 days | Not yet recovered |
| Feb 13, 2026 | Mar 9, 2026 | -35.1% | 15 days | 40 days (May 5, 2026) |
| Feb 28, 2023 | May 31, 2023 | -31.2% | 64 days | 73 days (Sep 14, 2023) |
Declines of 10% or more from a closing high, measured on daily closes.
Financial statements
- Market cap
- $4.30B
- EPS, diluted (TTM)
- -$0.60
- Revenue (TTM)
- $911.9M
- 52-week range
- $42.82 – $101.24
| FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 | |
|---|---|---|---|---|---|
| Revenue | $324.1M | $422.6M | $544.8M | $557.9M | $774.4M |
| Gross profit | $100.9M | $128.2M | $171.0M | $196.1M | $253.1M |
| Operating income | $9.9M | $22.2M | $34.6M | $35.4M | $51.7M |
| Net income | $1.4M | $17.4M | $12.9M | $13.0M | $50.1M |
| EPS (diluted) | $0.04 | $0.50 | $0.37 | $0.36 | $1.37 |
| Q3 2024 | Q4 2024 | Q1 2025 | Q2 2025 | Q3 2025 | Q4 2025 | Q1 2026 | Q2 2026 | |
|---|---|---|---|---|---|---|---|---|
| Revenue | $135.5M | $158.6M | $176.7M | $185.4M | $197.6M | $214.7M | $214.7M | $285.0M |
| Net income | $2.1M | $4.9M | $36.0M | $9.5M | $1.5M | $3.1M | $3.1M | -$34.8M |
| EPS (diluted) | $0.06 | $0.13 | $0.98 | $0.26 | $0.04 | $0.08 | $0.08 | -$0.80 |
| FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 | |
|---|---|---|---|---|---|
| Operating cash flow | $13.3M | $29.6M | $44.6M | $24.8M | $5.9M |
| Capital expenditure | -$2.6M | -$3.4M | -$8.4M | -$17.4M | -$11.3M |
| Free cash flow | $10.7M | $26.3M | $36.3M | $7.5M | -$5.5M |
| Dividends paid | $0 | $0 | $0 | $0 | $0 |
| Net share buybacks | -$5.0M | -$7.0M | $1.4M | -$5.0M | $872,000 |
Cash outflows are shown as negative numbers.
- Cash and short-term investments
- $61.1M
- Total assets
- $3.73B
- Total liabilities
- $1.65B
- Total debt
- $762.7M
- Net debt
- $701.7M
- Shareholders’ equity
- $2.08B
As of Jun 30, 2026 (filed Aug 10, 2026).
Dividends
| Ex-date | Amount | Paid |
|---|---|---|
| Sep 14, 2017 | $0.08 | Sep 29, 2017 |
| Jun 14, 2017 | $0.08 | — |
| Mar 15, 2017 | $0.08 | — |
| Dec 14, 2016 | $0.07 | — |
| Sep 14, 2016 | $0.07 | — |
| Jun 15, 2016 | $0.07 | — |
| Mar 16, 2016 | $0.07 | — |
| Dec 14, 2015 | $0.07 | — |
Short interest
- Shares sold short
- 1,967,749
- Days to cover
- 2.72
- Change vs previous report
- +13.3%
FINRA short interest, settlement date Sep 15, 2026.
Stock splits
- Aug 25, 2003
- 1-for-2
- Oct 1, 2001
- 1-for-2
- Aug 28, 2000
- 1-for-2
- Sep 29, 1992
- 1-for-5
- Aug 30, 1985
- 9-for-1