XML 26 R11.htm IDEA: XBRL DOCUMENT v3.24.0.1
Revenue (Notes)
12 Months Ended
Dec. 31, 2023
Revenue from Contract with Customer [Abstract]  
Revenue REVENUE
Sales includes revenue from contracts with customers for designing, engineering, manufacturing and installation of solar racking systems; electrical balance of systems; roof and foundation ventilation products; centralized mail systems and electronic package solutions; rain dispersion products; trims and flashings and other accessories; retractable awnings; gutter guards; designing, engineering, manufacturing and installation of greenhouses; structural bearings; expansion joints; pavement sealant; elastomeric concrete; and bridge cable protection systems.
Refer to Note 20 "Segment Information" for additional information related to revenue recognized by timing of transfer of control by reportable segment.
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, 2023, 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, 2023 and 2022, 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 costs in excess of billings presented within accounts receivable 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.
The following table presents the ending and beginning balances of costs in excess of billings, billings in excess of cost and unearned revenue, respectively, as of December 31 (in thousands):
202320222021
Costs in excess of billings$52,035 $41,732 $54,437 
Billings in excess of costs(44,735)(35,017)(46,711)
Unearned revenue(3,941)(4,572)(3,681)
Revenue recognized during the years ended December 31, 2023, 2022, and 2021 that was in contract liabilities at the beginning of the respective periods was $35.5 million, $44.4 million, and $53.0 million, respectively.
The increase in costs in excess of billings as of December 31, 2023 compared to December 31, 2022 was primarily due to the timing of the Company’s right to invoice customers for performance satisfied near the end of 2023. The increase in billings in excess of costs as of December 31, 2023 compared to December 31, 2022 was primarily due to timing and an increase in number of contracts under which the Company has billed customers in advance of the satisfaction of performance obligations in the Renewables segment near the end of 2023. The decreases in costs
in excess of billings and billings in excess of costs as of December 31, 2022 compared to December 31, 2021, respectively, were primarily due to decline in volume in the Renewables and Agtech segments in 2022 compared to 2021.