[{"data":1,"prerenderedAt":138},["ShallowReactive",2],{"i-lucide:chevron-down":3,"i-lucide:search":8,"i-lucide:user":10,"i-lucide:circle-help":12,"i-lucide:sun":14,"i-lucide:moon":16,"i-lucide:menu":18,"i-lucide:x":20,"i-lucide:instagram":22,"$fs0Ze3faMCDa95Dd9-KgwZoDc7B6V6axC8QGoWTk_sI0":25,"i-lucide:info":136},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m21 21l-4.34-4.34\"\u002F>\u003Ccircle cx=\"11\" cy=\"11\" r=\"8\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"\u002F>\u003Ccircle cx=\"12\" cy=\"7\" r=\"4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3m.08 4h.01\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":15},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"4\"\u002F>\u003Cpath d=\"M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":17},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":21},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M18 6L6 18M6 6l12 12\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":23,"hidden":24},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"20\" height=\"20\" x=\"2\" y=\"2\" rx=\"5\" ry=\"5\"\u002F>\u003Cpath d=\"M16 11.37A4 4 0 1 1 12.63 8A4 4 0 0 1 16 11.37m1.5-4.87h.01\"\u002F>\u003C\u002Fg>",true,{"data":26,"meta":133},{"identity":27,"transactions":37},{"directionalFilings":28,"firstSeen":29,"lastSeen":30,"lifetimeDistinctFilings":31,"lifetimeFilings":32,"ownerName":33,"slug":34,"tickers":35},5,"2025-09-22T00:00:00.000Z","2026-04-02T00:00:00.000Z",4,12,"Gleason Todd R","gleason-todd-r",[36],"CECO",[38,55,64,70,79,90,98,104,112,118,123,129],{"cik":39,"filedAt":30,"filingId":40,"formType":41,"originalSubmissionDate":42,"periodOfReport":42,"hasAdsFootnote":6,"hasIndirectOwnershipFootnote":6,"hasTaxWithholdingFootnote":24,"hasVwapFootnote":6,"is10b5_1":6,"isDirector":24,"isOfficer":24,"isOther":6,"isPairedExercise":6,"isTenPercentOwner":6,"otherText":42,"issuerName":43,"issuerTicker":36,"ownerName":33,"ownerTitle":44,"ownershipType":45,"pricePerShare":46,"rawFilingUrl":47,"shares":48,"sharesOwnedAfter":49,"totalValue":50,"transactionCode":51,"transactionDate":52,"intentLabel":53,"signalQuality":54},"3197","0001193125-26-139880-0","4",null,"CECO ENVIRONMENTAL CORP","Chief Executive Officer","D",59.58,"https:\u002F\u002Fwww.sec.gov\u002FArchives\u002Fedgar\u002Fdata\u002F1571235\u002F000119312526139880\u002F0001193125-26-139880-index.htm",2110,450688,125713.8,"F","2026-03-31","Tax withholding","non-discretionary",{"cik":39,"filedAt":56,"filingId":57,"formType":41,"originalSubmissionDate":42,"periodOfReport":42,"hasAdsFootnote":6,"hasIndirectOwnershipFootnote":6,"hasTaxWithholdingFootnote":24,"hasVwapFootnote":6,"is10b5_1":6,"isDirector":24,"isOfficer":24,"isOther":6,"isPairedExercise":6,"isTenPercentOwner":6,"otherText":42,"issuerName":43,"issuerTicker":36,"ownerName":33,"ownerTitle":44,"ownershipType":45,"pricePerShare":4,"rawFilingUrl":58,"shares":59,"sharesOwnedAfter":60,"totalValue":4,"transactionCode":61,"transactionDate":62,"intentLabel":63,"signalQuality":54},"2026-03-17T00:00:00.000Z","0001193125-26-111577-0","https:\u002F\u002Fwww.sec.gov\u002FArchives\u002Fedgar\u002Fdata\u002F1571235\u002F000119312526111577\u002F0001193125-26-111577-index.htm",75055,482333,"A","2026-03-15","Stock award",{"cik":39,"filedAt":56,"filingId":65,"formType":41,"originalSubmissionDate":42,"periodOfReport":42,"hasAdsFootnote":6,"hasIndirectOwnershipFootnote":6,"hasTaxWithholdingFootnote":24,"hasVwapFootnote":6,"is10b5_1":6,"isDirector":24,"isOfficer":24,"isOther":6,"isPairedExercise":6,"isTenPercentOwner":6,"otherText":42,"issuerName":43,"issuerTicker":36,"ownerName":33,"ownerTitle":44,"ownershipType":45,"pricePerShare":66,"rawFilingUrl":58,"shares":67,"sharesOwnedAfter":68,"totalValue":69,"transactionCode":51,"transactionDate":62,"intentLabel":53,"signalQuality":54},"0001193125-26-111577-1",54.85,29535,452798,1619994.75,{"cik":39,"filedAt":71,"filingId":72,"formType":41,"originalSubmissionDate":42,"periodOfReport":42,"hasAdsFootnote":6,"hasIndirectOwnershipFootnote":6,"hasTaxWithholdingFootnote":24,"hasVwapFootnote":6,"is10b5_1":6,"isDirector":24,"isOfficer":24,"isOther":6,"isPairedExercise":6,"isTenPercentOwner":6,"otherText":42,"issuerName":43,"issuerTicker":36,"ownerName":33,"ownerTitle":44,"ownershipType":45,"pricePerShare":73,"rawFilingUrl":74,"shares":75,"sharesOwnedAfter":76,"totalValue":77,"transactionCode":51,"transactionDate":78,"intentLabel":53,"signalQuality":54},"2026-03-09T00:00:00.000Z","0001193125-26-098095-0",52.53,"https:\u002F\u002Fwww.sec.gov\u002FArchives\u002Fedgar\u002Fdata\u002F1571235\u002F000119312526098095\u002F0001193125-26-098095-index.htm",3557,407278,186849.21,"2026-03-07",{"cik":39,"filedAt":29,"filingId":80,"formType":41,"originalSubmissionDate":42,"periodOfReport":81,"hasAdsFootnote":6,"hasIndirectOwnershipFootnote":6,"hasTaxWithholdingFootnote":6,"hasVwapFootnote":6,"is10b5_1":6,"isDirector":24,"isOfficer":24,"isOther":6,"isPairedExercise":6,"isTenPercentOwner":6,"otherText":42,"issuerName":43,"issuerTicker":36,"ownerName":33,"ownerTitle":44,"ownershipType":45,"pricePerShare":82,"rawFilingUrl":83,"shares":84,"sharesOwnedAfter":85,"totalValue":86,"transactionCode":87,"transactionDate":81,"intentLabel":88,"signalQuality":89},"0001193125-25-211916-0","2025-09-18",12.72,"https:\u002F\u002Fwww.sec.gov\u002FArchives\u002Fedgar\u002Fdata\u002F1571235\u002F000119312525211916\u002F0001193125-25-211916-index.htm",100000,510835,1272000,"M","Option exercise (held)","mechanical-buy",{"cik":39,"filedAt":29,"filingId":91,"formType":41,"originalSubmissionDate":42,"periodOfReport":81,"hasAdsFootnote":6,"hasIndirectOwnershipFootnote":6,"hasTaxWithholdingFootnote":6,"hasVwapFootnote":6,"is10b5_1":6,"isDirector":24,"isOfficer":24,"isOther":6,"isPairedExercise":24,"isTenPercentOwner":6,"otherText":42,"issuerName":43,"issuerTicker":36,"ownerName":33,"ownerTitle":44,"ownershipType":45,"pricePerShare":92,"rawFilingUrl":83,"shares":84,"sharesOwnedAfter":93,"totalValue":94,"transactionCode":95,"transactionDate":81,"intentLabel":96,"signalQuality":97},"0001193125-25-211916-1",51.3014,410835,5130140,"S","Sale (option exercise)","mechanical-sell",{"cik":39,"filedAt":29,"filingId":99,"formType":41,"originalSubmissionDate":42,"periodOfReport":81,"hasAdsFootnote":6,"hasIndirectOwnershipFootnote":6,"hasTaxWithholdingFootnote":6,"hasVwapFootnote":6,"is10b5_1":6,"isDirector":24,"isOfficer":24,"isOther":6,"isPairedExercise":6,"isTenPercentOwner":6,"otherText":42,"issuerName":43,"issuerTicker":36,"ownerName":33,"ownerTitle":44,"ownershipType":45,"pricePerShare":82,"rawFilingUrl":83,"shares":100,"sharesOwnedAfter":101,"totalValue":102,"transactionCode":87,"transactionDate":103,"intentLabel":88,"signalQuality":89},"0001193125-25-211916-2",101899,512734,1296155.28,"2025-09-19",{"cik":39,"filedAt":29,"filingId":105,"formType":41,"originalSubmissionDate":42,"periodOfReport":81,"hasAdsFootnote":6,"hasIndirectOwnershipFootnote":6,"hasTaxWithholdingFootnote":6,"hasVwapFootnote":6,"is10b5_1":6,"isDirector":24,"isOfficer":24,"isOther":6,"isPairedExercise":6,"isTenPercentOwner":6,"otherText":42,"issuerName":43,"issuerTicker":36,"ownerName":33,"ownerTitle":44,"ownershipType":45,"pricePerShare":106,"rawFilingUrl":83,"shares":107,"sharesOwnedAfter":108,"totalValue":109,"transactionCode":95,"transactionDate":103,"intentLabel":110,"signalQuality":111},"0001193125-25-211916-3",49.1024,85000,427734,4173704.0000000005,"Open-market sale","discretionary-sell",{"cik":39,"filedAt":29,"filingId":113,"formType":41,"originalSubmissionDate":42,"periodOfReport":81,"hasAdsFootnote":6,"hasIndirectOwnershipFootnote":6,"hasTaxWithholdingFootnote":6,"hasVwapFootnote":6,"is10b5_1":6,"isDirector":24,"isOfficer":24,"isOther":6,"isPairedExercise":6,"isTenPercentOwner":6,"otherText":42,"issuerName":43,"issuerTicker":36,"ownerName":33,"ownerTitle":44,"ownershipType":45,"pricePerShare":114,"rawFilingUrl":83,"shares":115,"sharesOwnedAfter":116,"totalValue":117,"transactionCode":95,"transactionDate":103,"intentLabel":110,"signalQuality":111},"0001193125-25-211916-4",50.3832,16199,411535,816157.4568,{"cik":39,"filedAt":29,"filingId":119,"formType":41,"originalSubmissionDate":42,"periodOfReport":81,"hasAdsFootnote":6,"hasIndirectOwnershipFootnote":6,"hasTaxWithholdingFootnote":6,"hasVwapFootnote":6,"is10b5_1":6,"isDirector":24,"isOfficer":24,"isOther":6,"isPairedExercise":6,"isTenPercentOwner":6,"otherText":42,"issuerName":43,"issuerTicker":36,"ownerName":33,"ownerTitle":44,"ownershipType":45,"pricePerShare":120,"rawFilingUrl":83,"shares":121,"sharesOwnedAfter":93,"totalValue":122,"transactionCode":95,"transactionDate":103,"intentLabel":110,"signalQuality":111},"0001193125-25-211916-5",51.1536,700,35807.52,{"cik":39,"filedAt":29,"filingId":124,"formType":41,"originalSubmissionDate":42,"periodOfReport":81,"hasAdsFootnote":6,"hasIndirectOwnershipFootnote":6,"hasTaxWithholdingFootnote":6,"hasVwapFootnote":6,"is10b5_1":6,"isDirector":24,"isOfficer":24,"isOther":6,"isPairedExercise":6,"isTenPercentOwner":6,"otherText":42,"issuerName":43,"issuerTicker":36,"ownerName":33,"ownerTitle":44,"ownershipType":45,"pricePerShare":82,"rawFilingUrl":83,"shares":125,"sharesOwnedAfter":126,"totalValue":127,"transactionCode":87,"transactionDate":128,"intentLabel":88,"signalQuality":89},"0001193125-25-211916-6",98101,508936,1247844.72,"2025-09-22",{"cik":39,"filedAt":29,"filingId":130,"formType":41,"originalSubmissionDate":42,"periodOfReport":81,"hasAdsFootnote":6,"hasIndirectOwnershipFootnote":6,"hasTaxWithholdingFootnote":6,"hasVwapFootnote":6,"is10b5_1":6,"isDirector":24,"isOfficer":24,"isOther":6,"isPairedExercise":24,"isTenPercentOwner":6,"otherText":42,"issuerName":43,"issuerTicker":36,"ownerName":33,"ownerTitle":44,"ownershipType":45,"pricePerShare":131,"rawFilingUrl":83,"shares":125,"sharesOwnedAfter":93,"totalValue":132,"transactionCode":95,"transactionDate":128,"intentLabel":96,"signalQuality":97},"0001193125-25-211916-7",50.4493,4949126.7793000005,{"count":32,"fetchedAt":134,"source":135},"2026-08-25T21:15:19.075Z","sqlite",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":137},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 16v-4m0-4h.01\"\u002F>\u003C\u002Fg>",1787692519012]