SEC EDGAR · Insider purchase
CECO: WALLMAN RICHARD F reported buying shares
1 reported purchase of non-derivative securities. Code P includes open-market and private purchases; it does not establish motive.
Follow CECO- Became public
- Jun 3, 2026, 7:35 PM EDT
- Event / period date
- Jun 1, 2026
- Collected
- Nov 10, 2026, 5:56 AM EST
Why this is connected
This filing identifies CECO ENVIRONMENTAL CORP as the issuer of the security. The company's SEC identifier connects it to CECO.
Reported transactions
WALLMAN RICHARD F (Director)
20,000 shares · Common Stock
Jun 1, 2026 · $76.8469 per share
Value calculated from the reported shares and prices: $1,536,938.00.
Code P covers open-market and private purchases. Grants, option exercises, and tax withholding are excluded from purchase results. Read the source footnotes for ownership and pricing details.
Source evidence
Read the source excerpt or record
<?xml version="1.0"?>
<ownershipDocument>
<schemaVersion>X0609</schemaVersion>
<documentType>4</documentType>
<periodOfReport>2026-06-01</periodOfReport>
<notSubjectToSection16>false</notSubjectToSection16>
<issuer>
<issuerCik>0000003197</issuerCik>
<issuerName>CECO ENVIRONMENTAL CORP</issuerName>
<issuerTradingSymbol>CECO</issuerTradingSymbol>
<issuerForeignTradingSymbol></issuerForeignTradingSymbol>
</issuer>
<reportingOwner>
<reportingOwnerId>
<rptOwnerCik>0001198092</rptOwnerCik>
<rptOwnerName>WALLMAN RICHARD F</rptOwnerName>
</reportingOwnerId>
<reportingOwnerAddress>
<rptOwnerNonUSAddressFlag>false</rptOwnerNonUSAddressFlag>
<rptOwnerStreet1>5080 SPECTRUM DRIVE</rptOwnerStreet1>
<rptOwnerStreet2>SUITE 800E</rptOwnerStreet2>
<rptOwnerCity>ADDISON</rptOwnerCity>
<rptOwnerState>TX</rptOwnerState>
<rptOwnerZipCode>75001</rptOwnerZipCode>
<rptOwnerStateDescription></rptOwnerStateDescription>
</reportingOwnerAddress>
<reportingOwnerRelationship>
<isDirector>true</isDirector>
<isOfficer>false</isOfficer>
<isTenPercentOwner>false</isTenPercentOwner>
<isOther>false</isOther>
</reportingOwnerRelationship>
</reportingOwner>
<aff10b5One>false</aff10b5One>
<nonDerivativeTable>
<nonDerivativeTransaction>
<securityTitle>
<value>Common Stock</value>
</securityTitle>
<transactionDate>
<value>2026-06-01</value>
</transactionDate>
<transactionCoding>
<transactionFormType>4</transactionFormType>
<transactionCode>A</transactionCode>
<equitySwapInvolved>false</equitySwapInvolved>
</transactionCoding>
<transactionAmounts>
<transactionShares>
<value>3443</value>
<footnoteId id="F1"/>
<footnoteId id="F2"/>
</transactionShares>
<transactionPricePerShare>
<value>0</value>
</transactionPricePerShare>
<transactionAcquiredDisposedCode>
<value>A</value>
</transactionAcquiredDisposedCode>
</transactionAmounts>
<postTransactionAmounts>
<sharesOwnedFollowingTransaction>
<value>233352</value>
</sharesOwnedFollowingTransaction>
</postTransactionAmounts>
<ownershipNature>
<directOrIndirectOwnership>
<value>D</value>
</directOrIndirectOwnership>
</ownershipNature>
</nonDerivativeTransaction>
<nonDerivativeTransaction>
<securityTitle>
<value>Common Stock</value>
</securityTitle>
<transactionDate>
<value>2026-06-01</value>
</transactionDate>
<transactionCoding>
<transactionFormType>4</transactionFormType>
<transactionCode>P</transactionCode>
<equitySwapInvolved>false</equitySwapInvolved>
</transactionCoding>
<transactionAmounts>
<transactionShares>
<value>20000</value>
</transactionShares>
<transactionPricePerShare>
<value>76.8469</value>
<footnoteId id="F3"/>
</transactionPricePerShare>
<transactionAcquiredDisposedCode>
<value>A</value>
</transactionAcquiredDisposedCode>
</transactionAmounts>
<postTransactionAmounts>
<sharesOwnedFollowingTransaction>
<value>105500</value>
</sharesOwnedFollowingTransaction>
</postTransactionAmounts>
<ownershipNature>
<directOrIndirectOwnership>
<value>I</value>
</directOrIndirectOwnership>
<natureOfOwnership>
<value>By spouse</value>
</natureOfOwnership>
</ownershipNature>
</nonDerivativeTransaction>
</nonDerivativeTable>
<footnotes>
<footnote id="F1">Includes grant of 1,228 shares of common stock in lieu of annual cash fees paid to the director.</footnote>
<footnote id="F2">Shares will vest May 15, 2027.</footnote>
<footnote id="F3">Price reflects the weighted average purchase price for multiple transactions that ranged from $75.00 to $78.75 per share. The Reporting Person undertakes to provide, upon request by the Commission Staff, the Issuer or a security holder of the Issuer, full information regarding the number of shares purchased at each separate price.</footnote>
</footnotes>
<remarks>Exhibit 24: Power of Attorney</remarks>
<ownerSignature>
<signatureName>/s/ Kiril Kovachev as Attorney-in-Fact for Richard F Wallman</signatureName>
<signatureDate>2026-06-03</signatureDate>
</ownerSignature>
</ownershipDocument>
Congressional trading in CECO
These disclosures provide context. Their presence does not establish a link between a trader and the event.
- Sep 10, 2026$1K–$15K
Rep. Gilbert Ray Cisneros, Jr. (D-CA-31)
Bought CECO Environmental CECO
$1K–$15K · Traded Aug 20, 2026 · disclosed Sep 10, 2026
- Jul 2, 2026$1K–$15K
Rep. Gilbert Ray Cisneros, Jr. (D-CA-31)
Bought CECO Environmental CECO
$1K–$15K · Traded Jun 30, 2026 · disclosed Jul 2, 2026
Original documents control. Public records can be amended, and company connections may require interpretation. Nothing here is investment advice.