CECO ENVIRONMENTAL CORP Revenue Disclosure
Revenue recognition—A significant portion of the Company's revenue is derived from fixed-price contracts. The Company accounts for a contract after it has been approved by all parties to the arrangement, the rights of the parties are identified, payment terms are identified, the contract has commercial substance and collectability of consideration is probable.
For each contract, the Company assesses the goods and services promised to a customer and identifies a performance obligation for each distinct promised good or service. The typical life of contracts is generally less than 12 months and each contract generally contains only one performance obligation, to provide goods or services to the customer. The Company determines the transaction price for each contract based on the consideration the Company expects to receive for the products or services being provided under the contract.
The Company recognizes revenue as performance obligations are satisfied and the customer obtains control of the products and services. A significant amount of the Company's revenue is recognized over a period of time as the Company performs under the contract because control of the work in process transfers continuously to the customer. For performance obligations to deliver products with continuous transfer of control to the customer, revenue is recognized based on the extent of progress towards completion of the performance obligation. Progress is measured based on the ratio of costs incurred to date to the total estimated costs to complete the performance obligation. For these contracts, the cost-to-cost measure best depicts the continuous transfer of goods or services to the customer. Annual revenue recognized over a period of time is approximately 76% of total revenue for the year ended December 31, 2025, and 75% for the years ended December 31, 2024 and 2023.
For contracts where the duration is short, or control does not continuously transfer to the customer, revenues are recognized at the point in time control passes to the customer, which occurs generally upon shipment of product. Annual revenue recognized at a point in time is approximately 24% of total revenue for the year ended December 31, 2025, and 25% for the years ended December 31, 2024 and 2023.
Progress payments are generally made over the duration of the contract. Shipping and handling activities after control of the products has transferred to the customer are considered fulfillment activities. Sales taxes are recorded on a net basis.
Contract assets and contract liabilities — Contract assets consist of costs and earnings in excess of billings, costs incurred for contracts recognized at a point in time, and retainage. Costs and earnings in excess of billings represent the estimated value of unbilled work for contracts with performance obligations recognized over time and are separately classified as current assets in the Consolidated Balance Sheets. Costs incurred for contracts recognized at a point in time are classified within inventories as work-in-process. Retainage represents a portion of the contract billings that have been billed, but for which the contract allows the customer to retain a portion of the billed amount until final settlement. Retainage is not considered to be a significant financing component because the intent is to protect the customer. Retainage is classified within accounts receivable and deferred charges and other assets depending on when it is due. Almost all of the Company’s contract assets are classified as current assets in the Consolidated Balance Sheets.
Billings in excess of costs and estimated earnings on uncompleted contracts are current liabilities, which relate to fixed-price contracts recognized over time, and represents payments in advance of performing the related contract work. Billings in excess of costs and estimated earnings on uncompleted contracts is not considered to be a significant financing component because it is generally used to meet working capital demands that can be higher in the early stages of a contract. Contract liabilities, classified in Accrued expenses in the Consolidated Balance Sheets, include advance payments received from customers for which revenue has not been recognized for contracts where revenue is recognized at a point in time. Contract liabilities are reduced when the associated revenue from the contract is recognized, which is generally within one year.
As of the beginning of the prior year period, or January 1, 2024, costs and estimated earnings in excess of billings on uncompleted contracts and billings in excess of costs and estimated earnings on uncompleted contracts were $66.6 million and $56.9 million, respectively. The contract liabilities recorded in “Accrued expenses” on the Consolidated Balance Sheets were $7.9 million as of January 1, 2024. Approximately 90% of the Company's contract liabilities as of December 31, 2024 were recognized as revenue in the year ended December 31, 2025. Approximately 95% of the Company's contract liabilities as of December 31, 2023 were recognized as revenue in the year ended December 31, 2024. Approximately 95% of the Company's contract liabilities as of December 31, 2022 were recognized as revenue in the year ended December 31, 2023.
See Note 16 to the Consolidated Financial Statements for additional information on product offerings and segments.
Provisions for estimated losses on uncompleted contracts are made in the period in which such losses are determined. Changes to job performance, job conditions, and estimated profitability may result in revisions to contract revenue and costs and are recognized in the period in which the revisions are made. There was no provision for estimated losses on uncompleted contracts at December 31, 2025 and 2024.
Historical Timeline
| Fiscal Year | Filed | |
|---|---|---|
| 2025 | Mar 2, 2026 | Showing above |
| 2024 | Feb 25, 2025 | |
| 2023 | Mar 5, 2024 | |
| 2022 | Mar 6, 2023 | |
| 2021 | Mar 14, 2022 | |
About Revenue Disclosures
Revenue disclosures under ASC 606 explain how a company identifies performance obligations, allocates transaction prices, and determines when revenue is recognized. This section is essential for understanding whether reported revenue reflects genuine economic activity or aggressive accounting choices. Analysts examine the mix of point-in-time versus over-time recognition, which directly affects revenue timing and comparability.
Key signals: rising contract liabilities (deferred revenue) suggest strong future revenue visibility, while declining contract assets may indicate slowing project milestones. Watch for variable consideration estimates — rebates, returns, and performance bonuses that require management judgment. Significant changes in disaggregated revenue by geography or product line can reveal shifting business mix before it appears in headline numbers. Compare revenue growth against contract liability growth to assess sustainability, and scrutinize any changes in the timing of recognition that coincide with earnings pressure.