REVENUE RECOGNITION AND CONTRACTS
Revenue Recognition

We generate the vast majority of our revenues from the supply of, and aftermarket services for, steam-generating, environmental and auxiliary equipment. We had one customer that comprised more than 10% of our consolidated revenues as of December 31, 2025 and no single customer comprised 10% or more of our consolidated revenues in 2024 or 2023. Our revenue recognition accounting policy is described in more detail in Note 2.

Contract Balances

The following represents the components of Accounts receivable - trade, net, Contracts in progress and Advance billings on contracts included in the Consolidated Balance Sheets. We are also including accrued contract losses included in Other accrued liabilities in the Consolidated Balance Sheets:

(in thousands)December 31, 2025December 31, 2024$ Change% Change
Accounts receivable - trade, net$118,383 $91,767 $26,616 29 %
Contracts in progress72,808 79,149 (6,341)(8)%
Advance billings on contracts111,987 56,381 55,606 99 %
Accrued contract losses469 217 252 116 %
(in thousands)December 31, 2024December 31, 2023$ Change% Change
Accounts receivable - trade, net$91,767 $77,467 $14,300 18 %
Contracts in progress79,149 46,014 33,135 72 %
Advance billings on contracts56,381 52,085 4,296 %
Accrued contract losses217 46 171 372 %

For the years ended December 31, 2025, 2024 and 2023, we recognized 92%, 92% and 85% of the revenue related to amounts that were included in advance billings on contracts as of December 31, 2024, 2023 and 2022, respectively.

The following amounts represent retainage on contracts:

(in thousands)December 31, 2025December 31, 2024$ Change% Change
Retainage expected to be collected within one year$957 $3,781 $(2,824)(75)%
Retainage expected to be collected after one year579 193 386 200 %
Total retainage$1,536 $3,974 $(2,438)(61)%

Retainage is a holdback of final payment from a customer upon completion of a contract for a set period of time. Retainage is included in advance billings on contracts or contracts in progress in the Consolidated Balance Sheets as of December 31, 2025 and 2024. All long-term retainage at December 31, 2025 is expected to be collected by the end of 2027.

Backlog

At December 31, 2025 we had $423.6 million of remaining performance obligations, which we also refer to as total backlog. We expect to recognize approximately 90%, 9% and 1% of its remaining performance obligations as revenue in 2026, 2027 and thereafter, respectively.

Historical Timeline

Fiscal YearFiled
2025Mar 16, 2026Showing above
2024Mar 31, 2025
2023Mar 15, 2024
2022Mar 16, 2023
2021Mar 8, 2022
2020Mar 8, 2021
2019Mar 30, 2020
2018Apr 2, 2019
2017Mar 1, 2018
2016Feb 28, 2017

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.