CECO Environmental just did the hard part and then flinched. On Monday the stock surged 6.8% to $79.13, tagging an intraday high of $80.98, then closed the session back at the door it had just tried to open — under $80. For a name that has spent weeks coiling underneath this exact ceiling, that is not a no-news drift. It is a contest about to be decided.
The level carrying all the memory is $80. It capped the post-earnings recovery in August, and today's session spent itself testing the round number, touched it, and could not hold a close above it. Everything on this chart now runs through $80.
Why today's move is real
Start with the tape, not the catchphrase. This was a displacement move with participation: block-size orders were skewed toward buying on a day CECOCECO-- traded a 9.5% intraday range — roughly 1.2 times its recent average true range of about $4.26. When a stock this stretched meets a crowded level, the reaction matters more than the daily percentage.
Quick Backtesting Tool
The fundamental engine underneath justifies the attention. CECO closed the roughly $2.2 billion acquisition of Thermon Group in June, and the first combined quarters have validated the deal on paper. Q2 orders came in at $798.5 million, up 191% from a year earlier, and backlog reached $1,819.1 million, up 164%. The company raised its full-year revenue guidance to $1.300 billion and $1.375 billion. That is the context that keeps this from being a one-day pop.
But here is the part a retail scan tends to miss. The same Q2 release showed a GAAP net loss of $34.8 million — a $0.80 per-share loss — smothered by about $45 million of acquisition and integration charges plus a $9.5 million inventory step-up. A glance at the headline number says "loss." The order book says the opposite. That disconnect is exactly the kind of confusion that leaves sellers in a stock right as the tape turns: fuel for the move, not a rumor.
The line that matters
Everything runs through $80 — not because it is a clean round number, but because it has memory. It is the ceiling that stopped the August recovery, and today's bar put a fresh $80.98 high on it before fading to a $79.13 close, back under the mark.
Above $80, this stops being a bounce and becomes a breakout with room. The first objective is the ~$85 target zone where analysts have anchored targets — only a few percent overhead — and the far supply, the $101.24 52-week high, is the next leg's objective if buyers stay in charge.
Below roughly $74, the setup breaks. That is where today's session stepped off from, it sits just under the 50-day line near $75.80, and it marks the base's recent lows. Give that back and today becomes a failed breakout that traps whoever chased the morning surge.
The trade map
| Scenario | Trigger | Path | Invalidation | Horizon |
|---|---|---|---|---|
| Breakout continues | Hold/close above $80.98 on expanding volume | $85 zone, then $101.24 gap overhead | Close back under the $74 base | Days to weeks |
| Fakeout / rejection | Failure to reclaim $80, fade back into the base | Retest of $74–70 (200-day near $70) | Sustained close below $74 | Days |
The setup has a real clock on it. A single session closing above $80.98 with volume still expanding confirms the breakout and turns the August traders who sold this ceiling into trapped inventory, forced to watch their short sale fight for cover. A close back under the base near $74 kills the thesis outright.

Hold $80 and the post-Thermon trend resumes. Lose $74 and Monday was just another ceiling rejection wearing a bullish headline. That is the whole trade.











