REVENUE
Sales includes revenue from contracts with customers for roof and foundation ventilation products, single point and centralized mail systems, trims, flashings, metal roofing, rain dispersion products and other accessories, retractable awnings and gutter guards; designing, engineering, manufacturing and installation of controlled environment agriculture structures, custom greenhouses and structural canopies; structural bearings, expansion joints, pavement sealant, elastomeric concrete and bridge cable protection systems.
Refer to Note 16 "Segment Information" for disclosures related to disaggregation of revenue.
Payment terms and conditions vary by contract, although terms generally include a requirement of payment within a range from 30 to 60 days, or in certain cases, up front deposits. In circumstances where the timing of revenue recognition differs from the timing of invoicing, the Company has determined that the Company's contracts generally do not include a significant financing component. Taxes collected from customers, which are subsequently remitted to governmental authorities, are excluded from sales.
As of December 31, 2025, the Company's remaining performance obligations are part of contracts that have an original expected duration of one year or less. Additionally, as of December 31, 2025 and 2024, there were no assets recognized related to incremental costs of obtaining a contract with a customer as the benefits of these costs are not expected to exceed one year.
Contract assets consist of net costs in excess of billings, classified as current assets in the Company's consolidated balance sheets. Contract liabilities consist of billings in excess of costs, classified as current liabilities, and unearned revenue, presented within accrued expenses, in the Company's consolidated balance sheets. Unearned revenue at December 31, 2025 and 2024 was $1.4 million and $0.7 million, respectively.
The Company recognized revenue of $13.7 million, $15.4 million, and $15.0 million during the years ended December 31, 2025, 2024, and 2023, respectively, that was included in the contract liabilities balance of $15.4 million, $17.3 million, and $17.8 million at December 31, 2024, 2023 and 2022, respectively.
The increase in costs in excess of billings from December 31, 2024 was primarily due to the acquisition of Lane Supply, Inc. in 2025. The decrease in billings in excess of costs from December 31, 2024 was primarily due to timing and decrease in the number of contracts under which the Company has billed customers in advance of the satisfaction of performance obligations in the Agtech segment near the end of 2025.
During the years ended December 31, 2025, 2024, and 2023, the Company revised certain total costs expected to be incurred to complete estimates for contracts with customers whose performance obligations are satisfied over time, based on updated information and the Company’s regular contract reviews. The impact of these changes in estimates were not material to the Company’s consolidated financial statements, and there were no changes in estimates related to any individual contract that materially impacted the Company’s consolidated financial statements.

Historical Timeline

Fiscal YearFiled
2025Feb 26, 2026Showing above
2024Feb 19, 2025
2023Feb 21, 2024
2022Feb 22, 2023
2021Feb 23, 2022
2020Feb 25, 2021
2019Feb 28, 2020
2018Feb 27, 2019

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.