{
  "cik": 3197,
  "cik_padded": "0000003197",
  "entityName": "CECO ENVIRONMENTAL CORP",
  "fiscal_years": [
    {
      "accn": "0001193125-26-085815",
      "filed": "2026-03-02",
      "fiscal_year": 2025,
      "form": "10-K",
      "fundamental_units": {
        "buybacks": "USD",
        "capex": "USD",
        "cash": "USD",
        "cost_of_revenue": "USD",
        "eps_diluted": "USD/shares",
        "free_cash_flow": "USD",
        "gross_profit": "USD",
        "net_income": "USD",
        "operating_cash_flow": "USD",
        "operating_income": "USD",
        "revenue": "USD",
        "stockholders_equity": "USD",
        "total_assets": "USD",
        "total_liabilities": "USD"
      },
      "fundamentals": {
        "buybacks": 0.0,
        "capex": 11343000.0,
        "cash": 33144000.0,
        "cost_of_revenue": 505155000.0,
        "eps_diluted": 1.37,
        "free_cash_flow": -5482000.0,
        "gross_profit": 269226000.0,
        "net_income": 50051000.0,
        "operating_cash_flow": 5861000.0,
        "operating_income": 105859000.0,
        "revenue": 774381000.0,
        "stockholders_equity": 317528000.0,
        "total_assets": 893769000.0,
        "total_liabilities": 570587000.0
      },
      "period_end": "2025-12-31",
      "ratio_units": {
        "gross_margin": "ratio",
        "leverage": "ratio",
        "net_margin": "ratio",
        "operating_margin": "ratio",
        "revenue_growth_yoy": "ratio",
        "roa_avg2y": "ratio",
        "roa_period_end": "ratio",
        "roe_avg2y": "ratio",
        "roe_period_end": "ratio"
      },
      "ratios": {
        "gross_margin": 0.3476660713524738,
        "leverage": 1.796965936862261,
        "net_margin": 0.06463355893287671,
        "operating_margin": 0.1367014428298215,
        "revenue_growth_yoy": 0.38794622293357806,
        "roa_avg2y": 0.06054063338389373,
        "roa_period_end": 0.055999928393130664,
        "roe_avg2y": 0.17710366107176537,
        "roe_period_end": 0.15762704391423749
      }
    },
    {
      "accn": "0001193125-26-085815",
      "filed": "2026-03-02",
      "fiscal_year": 2024,
      "form": "10-K",
      "fundamental_units": {
        "buybacks": "USD",
        "capex": "USD",
        "cash": "USD",
        "cost_of_revenue": "USD",
        "eps_diluted": "USD/shares",
        "free_cash_flow": "USD",
        "gross_profit": "USD",
        "net_income": "USD",
        "operating_cash_flow": "USD",
        "operating_income": "USD",
        "revenue": "USD",
        "stockholders_equity": "USD",
        "total_assets": "USD",
        "total_liabilities": "USD"
      },
      "fundamentals": {
        "buybacks": 5000000.0,
        "capex": 17368000.0,
        "cash": 37832000.0,
        "cost_of_revenue": 361786000.0,
        "eps_diluted": 0.36,
        "free_cash_flow": 7460000.0,
        "gross_profit": 196147000.0,
        "net_income": 12957000.0,
        "operating_cash_flow": 24828000.0,
        "operating_income": 35403000.0,
        "revenue": 557933000.0,
        "stockholders_equity": 247689000.0,
        "total_assets": 759699000.0,
        "total_liabilities": 507806000.0
      },
      "period_end": "2024-12-31",
      "ratio_units": {
        "gross_margin": "ratio",
        "leverage": "ratio",
        "net_margin": "ratio",
        "operating_margin": "ratio",
        "revenue_growth_yoy": "ratio",
        "roa_avg2y": "ratio",
        "roa_period_end": "ratio",
        "roe_avg2y": "ratio",
        "roe_period_end": "ratio"
      },
      "ratios": {
        "gross_margin": 0.3515601335644244,
        "leverage": 2.0501758253293443,
        "net_margin": 0.023223218558500753,
        "operating_margin": 0.06345385557047173,
        "revenue_growth_yoy": 0.02402151070487937,
        "roa_avg2y": 0.01905455187170494,
        "roa_period_end": 0.017055439062049576,
        "roe_avg2y": 0.05395018445575144,
        "roe_period_end": 0.05231156813584778
      }
    },
    {
      "accn": "0001193125-26-085815",
      "filed": "2026-03-02",
      "fiscal_year": 2023,
      "form": "10-K",
      "fundamental_units": {
        "buybacks": "USD",
        "capex": "USD",
        "cash": "USD",
        "cost_of_revenue": "USD",
        "eps_diluted": "USD/shares",
        "free_cash_flow": "USD",
        "gross_profit": "USD",
        "net_income": "USD",
        "operating_cash_flow": "USD",
        "operating_income": "USD",
        "revenue": "USD",
        "stockholders_equity": "USD",
        "total_assets": "USD",
        "total_liabilities": "USD"
      },
      "fundamentals": {
        "buybacks": 0.0,
        "capex": 8384000.0,
        "cash": 54779000.0,
        "cost_of_revenue": 373829000.0,
        "eps_diluted": 0.37,
        "free_cash_flow": 36263000.0,
        "gross_profit": 171016000.0,
        "net_income": 12911000.0,
        "operating_cash_flow": 44647000.0,
        "operating_income": 34569000.0,
        "revenue": 544845000.0,
        "stockholders_equity": 232643000.0,
        "total_assets": 600291000.0,
        "total_liabilities": 362800000.0
      },
      "period_end": "2023-12-31",
      "ratio_units": {
        "gross_margin": "ratio",
        "leverage": "ratio",
        "net_margin": "ratio",
        "operating_margin": "ratio",
        "revenue_growth_yoy": "ratio",
        "roa_avg2y": "ratio",
        "roa_period_end": "ratio",
        "roe_avg2y": "ratio",
        "roe_period_end": "ratio"
      },
      "ratios": {
        "gross_margin": 0.3138800943387569,
        "leverage": 1.5594709490506915,
        "net_margin": 0.023696647670438383,
        "operating_margin": 0.06344740247226276,
        "revenue_growth_yoy": 0.2891864457311057,
        "roa_avg2y": 0.02336807202093733,
        "roa_period_end": 0.021507902000862916,
        "roe_avg2y": 0.057914131344100374,
        "roe_period_end": 0.05549704912677364
      }
    },
    {
      "accn": "0000950170-25-026562",
      "filed": "2025-02-25",
      "fiscal_year": 2022,
      "form": "10-K",
      "fundamental_units": {
        "buybacks": "USD",
        "capex": "USD",
        "cash": "USD",
        "cost_of_revenue": "USD",
        "eps_diluted": "USD/shares",
        "free_cash_flow": "USD",
        "gross_profit": "USD",
        "net_income": "USD",
        "operating_cash_flow": "USD",
        "operating_income": "USD",
        "revenue": "USD",
        "stockholders_equity": "USD",
        "total_assets": "USD",
        "total_liabilities": "USD"
      },
      "fundamentals": {
        "buybacks": 7020000.0,
        "capex": 3376000.0,
        "cash": 45522000.0,
        "cost_of_revenue": 294402000.0,
        "eps_diluted": 0.5,
        "free_cash_flow": 26273000.0,
        "gross_profit": 128225000.0,
        "net_income": 17417000.0,
        "operating_cash_flow": 29649000.0,
        "operating_income": 22161000.0,
        "revenue": 422627000.0,
        "stockholders_equity": 213224000.0,
        "total_assets": 504721000.0,
        "total_liabilities": 286573000.0
      },
      "period_end": "2022-12-31",
      "ratio_units": {
        "gross_margin": "ratio",
        "leverage": "ratio",
        "net_margin": "ratio",
        "operating_margin": "ratio",
        "revenue_growth_yoy": "ratio",
        "roa_avg2y": "ratio",
        "roa_period_end": "ratio",
        "roe_avg2y": "ratio",
        "roe_period_end": "ratio"
      },
      "ratios": {
        "gross_margin": 0.3033999247563454,
        "leverage": 1.3439997373653998,
        "net_margin": 0.04121128086941913,
        "operating_margin": 0.0524363090857896,
        "revenue_growth_yoy": 0.30384093293021536,
        "roa_avg2y": 0.03782530040676803,
        "roa_period_end": 0.03450817382276545,
        "roe_avg2y": 0.0833792109685048,
        "roe_period_end": 0.08168405057592015
      }
    },
    {
      "accn": "0000950170-24-025511",
      "filed": "2024-03-05",
      "fiscal_year": 2021,
      "form": "10-K",
      "fundamental_units": {
        "buybacks": "USD",
        "capex": "USD",
        "cash": "USD",
        "cost_of_revenue": "USD",
        "eps_diluted": "USD/shares",
        "free_cash_flow": "USD",
        "gross_profit": "USD",
        "net_income": "USD",
        "operating_cash_flow": "USD",
        "operating_income": "USD",
        "revenue": "USD",
        "stockholders_equity": "USD",
        "total_assets": "USD",
        "total_liabilities": "USD"
      },
      "fundamentals": {
        "buybacks": 5014000.0,
        "capex": 2616000.0,
        "cash": 29902000.0,
        "cost_of_revenue": 223218000.0,
        "eps_diluted": 0.04,
        "free_cash_flow": 10682000.0,
        "gross_profit": 100922000.0,
        "net_income": 1426000.0,
        "operating_cash_flow": 13298000.0,
        "operating_income": 9857000.0,
        "revenue": 324140000.0,
        "stockholders_equity": 204554000.0,
        "total_assets": 416197000.0,
        "total_liabilities": 210240000.0
      },
      "period_end": "2021-12-31",
      "ratio_units": {
        "gross_margin": "ratio",
        "leverage": "ratio",
        "net_margin": "ratio",
        "operating_margin": "ratio",
        "revenue_growth_yoy": "ratio",
        "roa_avg2y": "ratio",
        "roa_period_end": "ratio",
        "roe_avg2y": "ratio",
        "roe_period_end": "ratio"
      },
      "ratios": {
        "gross_margin": 0.3113531190226445,
        "leverage": 1.0277970609227882,
        "net_margin": 0.004399333621274757,
        "operating_margin": 0.0304096995125563,
        "revenue_growth_yoy": 0.025723788095984,
        "roa_avg2y": 0.0034134798943401103,
        "roa_period_end": 0.003426262082619529,
        "roe_avg2y": 0.007003722876536055,
        "roe_period_end": 0.0069712643116243145
      }
    },
    {
      "accn": "0000950170-23-006169",
      "filed": "2023-03-06",
      "fiscal_year": 2020,
      "form": "10-K",
      "fundamental_units": {
        "buybacks": "USD",
        "capex": "USD",
        "cash": "USD",
        "cost_of_revenue": "USD",
        "eps_diluted": "USD/shares",
        "free_cash_flow": "USD",
        "gross_profit": "USD",
        "net_income": "USD",
        "operating_cash_flow": "USD",
        "operating_income": "USD",
        "revenue": "USD",
        "stockholders_equity": "USD",
        "total_assets": "USD",
        "total_liabilities": "USD"
      },
      "fundamentals": {
        "buybacks": 0.0,
        "capex": 3945000.0,
        "cash": 35992000.0,
        "cost_of_revenue": 210883000.0,
        "eps_diluted": 0.23,
        "free_cash_flow": 476000.0,
        "gross_profit": 105128000.0,
        "net_income": 8211000.0,
        "operating_cash_flow": 4421000.0,
        "operating_income": 13346000.0,
        "revenue": 316011000.0,
        "stockholders_equity": 202658000.0,
        "total_assets": 419314000.0,
        "total_liabilities": 215703000.0
      },
      "period_end": "2020-12-31",
      "ratio_units": {
        "gross_margin": "ratio",
        "leverage": "ratio",
        "net_margin": "ratio",
        "operating_margin": "ratio",
        "revenue_growth_yoy": "ratio",
        "roa_avg2y": "ratio",
        "roa_period_end": "ratio",
        "roe_avg2y": "ratio",
        "roe_period_end": "ratio"
      },
      "ratios": {
        "gross_margin": 0.332671963950622,
        "leverage": 1.06436952896012,
        "net_margin": 0.025983272734176978,
        "operating_margin": 0.04223270708931018,
        "revenue_growth_yoy": -0.07563715926275855,
        "roa_avg2y": 0.019834507114551463,
        "roa_period_end": 0.01958198390704818,
        "roe_avg2y": 0.04150375939849624,
        "roe_period_end": 0.04051653524657304
      }
    },
    {
      "accn": "0000950170-22-003502",
      "filed": "2022-03-14",
      "fiscal_year": 2019,
      "form": "10-K",
      "fundamental_units": {
        "capex": "USD",
        "cash": "USD",
        "cost_of_revenue": "USD",
        "eps_diluted": "USD/shares",
        "free_cash_flow": "USD",
        "gross_profit": "USD",
        "net_income": "USD",
        "operating_cash_flow": "USD",
        "operating_income": "USD",
        "revenue": "USD",
        "stockholders_equity": "USD",
        "total_assets": "USD",
        "total_liabilities": "USD"
      },
      "fundamentals": {
        "capex": 5655000.0,
        "cash": 35602000.0,
        "cost_of_revenue": 227770000.0,
        "eps_diluted": -0.5,
        "free_cash_flow": 4572000.0,
        "gross_profit": 114099000.0,
        "net_income": 17707000.0,
        "operating_cash_flow": 10227000.0,
        "operating_income": 17990000.0,
        "revenue": 341869000.0,
        "stockholders_equity": 193017000.0,
        "total_assets": 408637000.0,
        "total_liabilities": 215620000.0
      },
      "period_end": "2019-12-31",
      "ratio_units": {
        "gross_margin": "ratio",
        "leverage": "ratio",
        "net_margin": "ratio",
        "operating_margin": "ratio",
        "revenue_growth_yoy": "ratio",
        "roa_avg2y": "ratio",
        "roa_period_end": "ratio",
        "roe_avg2y": "ratio",
        "roe_period_end": "ratio"
      },
      "ratios": {
        "gross_margin": 0.33375064717772013,
        "leverage": 1.117103674805846,
        "net_margin": 0.05179469328894986,
        "operating_margin": 0.052622495751296544,
        "revenue_growth_yoy": 0.0134286281752184,
        "roa_avg2y": 0.044200150021404885,
        "roa_period_end": 0.04333185688031187,
        "roe_avg2y": 0.09530729835269675,
        "roe_period_end": 0.09173803343746924
      }
    },
    {
      "accn": "0001564590-21-010416",
      "filed": "2021-03-03",
      "fiscal_year": 2018,
      "form": "10-K",
      "fundamental_units": {
        "capex": "USD",
        "cash": "USD",
        "cost_of_revenue": "USD",
        "eps_diluted": "USD/shares",
        "free_cash_flow": "USD",
        "gross_profit": "USD",
        "net_income": "USD",
        "operating_cash_flow": "USD",
        "operating_income": "USD",
        "revenue": "USD",
        "stockholders_equity": "USD",
        "total_assets": "USD",
        "total_liabilities": "USD"
      },
      "fundamentals": {
        "capex": 3090000.0,
        "cash": 43676000.0,
        "cost_of_revenue": 225802000.0,
        "eps_diluted": -0.21,
        "free_cash_flow": 18862000.0,
        "gross_profit": 111537000.0,
        "net_income": -7121000.0,
        "operating_cash_flow": 21952000.0,
        "operating_income": 10002000.0,
        "revenue": 337339000.0,
        "stockholders_equity": 178560000.0,
        "total_assets": 392582000.0,
        "total_liabilities": 214022000.0
      },
      "period_end": "2018-12-31",
      "ratio_units": {
        "gross_margin": "ratio",
        "leverage": "ratio",
        "net_margin": "ratio",
        "operating_margin": "ratio",
        "revenue_growth_yoy": "ratio",
        "roa_avg2y": "ratio",
        "roa_period_end": "ratio",
        "roe_avg2y": "ratio",
        "roe_period_end": "ratio"
      },
      "ratios": {
        "gross_margin": 0.33063772644135425,
        "leverage": 1.1985999103942653,
        "net_margin": -0.021109329191110426,
        "operating_margin": 0.02964969956038288,
        "revenue_growth_yoy": -0.02235031922817207,
        "roa_avg2y": -0.01713568619146681,
        "roa_period_end": -0.018138885634084088,
        "roe_avg2y": -0.03900539261466495,
        "roe_period_end": -0.039880152329749105
      }
    },
    {
      "accn": "0001564590-20-008551",
      "filed": "2020-03-04",
      "fiscal_year": 2017,
      "form": "10-K",
      "fundamental_units": {
        "capex": "USD",
        "cash": "USD",
        "cost_of_revenue": "USD",
        "eps_diluted": "USD/shares",
        "free_cash_flow": "USD",
        "gross_profit": "USD",
        "net_income": "USD",
        "operating_cash_flow": "USD",
        "operating_income": "USD",
        "revenue": "USD",
        "stockholders_equity": "USD",
        "total_assets": "USD",
        "total_liabilities": "USD"
      },
      "fundamentals": {
        "capex": 1028000.0,
        "cash": 29902000.0,
        "cost_of_revenue": 231857000.0,
        "eps_diluted": -0.09,
        "free_cash_flow": 5542000.0,
        "gross_profit": 113194000.0,
        "net_income": -3029000.0,
        "operating_cash_flow": 6570000.0,
        "operating_income": 8024000.0,
        "revenue": 345051000.0,
        "stockholders_equity": 186569000.0,
        "total_assets": 438549000.0,
        "total_liabilities": 251980000.0
      },
      "period_end": "2017-12-31",
      "ratio_units": {
        "gross_margin": "ratio",
        "leverage": "ratio",
        "net_margin": "ratio",
        "operating_margin": "ratio",
        "revenue_growth_yoy": "ratio",
        "roa_avg2y": "ratio",
        "roa_period_end": "ratio",
        "roe_avg2y": "ratio",
        "roe_period_end": "ratio"
      },
      "ratios": {
        "gross_margin": 0.32805005636847884,
        "leverage": 1.3505995101008206,
        "net_margin": -0.008778412466562914,
        "operating_margin": 0.023254533387818032,
        "revenue_growth_yoy": -0.1725613952629547,
        "roa_avg2y": -0.006464052378244164,
        "roa_period_end": -0.006906867875653575,
        "roe_avg2y": -0.016083854815200277,
        "roe_period_end": -0.01623528024484239
      }
    },
    {
      "accn": "0001564590-19-006619",
      "filed": "2019-03-07",
      "fiscal_year": 2016,
      "form": "10-K",
      "fundamental_units": {
        "buybacks": "USD",
        "capex": "USD",
        "cash": "USD",
        "cost_of_revenue": "USD",
        "eps_diluted": "USD/shares",
        "free_cash_flow": "USD",
        "gross_profit": "USD",
        "net_income": "USD",
        "operating_cash_flow": "USD",
        "operating_income": "USD",
        "revenue": "USD",
        "stockholders_equity": "USD",
        "total_assets": "USD",
        "total_liabilities": "USD"
      },
      "fundamentals": {
        "buybacks": 188000.0,
        "capex": 1076000.0,
        "cash": 45824000.0,
        "cost_of_revenue": 282152000.0,
        "eps_diluted": -1.12,
        "free_cash_flow": 68523000.0,
        "gross_profit": 134859000.0,
        "net_income": -38218000.0,
        "operating_cash_flow": 69599000.0,
        "operating_income": -25562000.0,
        "revenue": 417011000.0,
        "stockholders_equity": 190082000.0,
        "total_assets": 498634000.0,
        "total_liabilities": 308552000.0
      },
      "period_end": "2016-12-31",
      "ratio_units": {
        "gross_margin": "ratio",
        "leverage": "ratio",
        "net_margin": "ratio",
        "operating_margin": "ratio",
        "roa_period_end": "ratio",
        "roe_period_end": "ratio"
      },
      "ratios": {
        "gross_margin": 0.32339434691171215,
        "leverage": 1.623257331046601,
        "net_margin": -0.09164746253695948,
        "operating_margin": -0.06129814321444758,
        "roa_period_end": -0.07664539521974033,
        "roe_period_end": -0.20106059490114792
      }
    },
    {
      "accn": "0001564590-17-004264",
      "filed": "2017-03-14",
      "fiscal_year": 2014,
      "form": "10-K",
      "fundamental_units": {
        "buybacks": "USD"
      },
      "fundamentals": {
        "buybacks": 973000.0
      },
      "period_end": "2014-12-31",
      "ratios": {}
    },
    {
      "accn": "0001564590-16-015157",
      "filed": "2016-03-23",
      "fiscal_year": 2013,
      "form": "10-K",
      "fundamental_units": {
        "buybacks": "USD"
      },
      "fundamentals": {
        "buybacks": 2365000.0
      },
      "period_end": "2013-12-31",
      "ratios": {}
    },
    {
      "accn": "0001193125-15-095828",
      "filed": "2015-03-18",
      "fiscal_year": 2012,
      "form": "10-K",
      "fundamental_units": {
        "buybacks": "USD"
      },
      "fundamentals": {
        "buybacks": 456000.0
      },
      "period_end": "2012-12-31",
      "ratios": {}
    }
  ],
  "latest_filing": {
    "accn": "0001193125-26-085815",
    "filed": "2026-03-02",
    "form": "10-K"
  },
  "note": "Static grepcent export of verified SEC companyfacts-derived values. Monetary values are raw reported units from grepcent's resolved facts; no scaling and no FX conversion. Capex, dividends, and buybacks are reported as positive outflow magnitudes. ROE/ROA include both period-end basis (site-consistent) and average-of-two-years basis where the prior-year denominator exists.",
  "schema_version": "1",
  "sic": "3564",
  "sic_description": "Industrial & Commercial Fans & Blowers & Air Purifing Equip",
  "source_urls": {
    "sec_companyfacts": "https://data.sec.gov/api/xbrl/companyfacts/CIK0000003197.json",
    "sec_submissions": "https://data.sec.gov/submissions/CIK0000003197.json"
  },
  "ticker": "CECO"
}
