XML 44 R25.htm IDEA: XBRL DOCUMENT
v3.25.0.1

Segment Information | 12 Months Ended
--- | ---
Dec. 31, 2024
Segment Reporting Information, Revenue for Reportable Segment [Abstract] |
Segment Information | SEGMENT INFORMATION The Company has four reportable segments: Residential, Renewables, Agtech and Infrastructure. The Company's reportable segments are each managed separately because they design, engineer, manufacture, and where applicable install, distinct products with different production processes. •Residential consists of operating segments that sell the following products and services to major retail home centers, building material wholesalers, building product distributors, roofing distributors, residential contractors, property management companies, manufactured housing dealers, postal services distributors and providers, and online direct to end consumers: roof and foundation ventilation products, single point and centralized mail systems and electronic package solutions, outdoor living space products (sun-shading), rain dispersion systems, metal roofing job site services, and other construction accessories. •Renewables consists of an operating segment that sells the following products and services to developers, EPCs and owners / operators of solar fields: design, manufacture and install solar energy mounting systems including foundation, racking, and electrical balance of system. •Agtech consists of an operating segment that sells the following products and services to large-scale indoor commercial growers and agricultural research and development facilities: design, manufacture and build advanced-technology turnkey greenhouse growing facilities. •Infrastructure consists of an operating segment that sells the following products to commercial and transportation contractors and fabricators: expansion joints, structural bearings, rubber pre-formed seals and other sealants, elastomeric concrete, and bridge cable protection systems. When determining the Company's Residential reportable segment, the Company aggregated operating segments to be one reportable segment as the aggregation is consistent with the objectives and principles of Topic 280, Segment Reporting, and on the basis that the operating segments have similar economic and operating characteristics. The accounting policies of the Company's segments are the same as those described in Note 1 "Summary of Significant Accounting Policies." The Company evaluates performance of all its reportable segments on income or loss from operations before interest and income taxes. The following tables illustrate certain measurements used by management to assess the performance of the segments described above for the years ended December 31 (in thousands):
| 2024
| Residential |  | Renewables |  | Agtech |  | Infrastructure |  | Total
Net sales | $ | 782,519 |  |  | $ | 285,405 |  |  | $ | 152,811 |  |  | $ | 88,029 |  |  | $ | 1,308,764 |
Less (1): |  |  |  |  |  |  |  |  |
Operating expenses (2) | 633,735 |  |  | 282,056 |  |  | 141,771 |  |  | 66,734 |  |  | 1,124,296 |
Segment profit | 148,784 |  |  | 3,349 |  |  | 11,040 |  |  | 21,295 |  |  | 184,468 |
Reconciliation of segment profit |  |  |  |
Unallocated corporate expenses |  |  |  |  |  |  |  |  | (41,445) |
Interest income, net |  |  |  |  |  |  |  |  | 6,171 |
Other income, net |  |  |  |  |  |  |  |  | 24,731 |
Income before taxes |  |  |  |  |  |  |  |  | $ | 173,925 |
| 2023
| Residential |  | Renewables |  | Agtech |  | Infrastructure |  | Total
Net sales | $ | 814,803 |  | $ | 330,738 |  | $ | 144,967 |  | $ | 87,228 |  | $ | 1,377,736
Less (1): |  |  |  |  |  |  |  |  |
Operating expenses (2) | 671,735 |  |  | 300,578 |  |  | 145,895 |  |  | 68,699 |  |  | 1,186,907 |
Segment profit (loss) | 143,068 |  |  | 30,160 |  |  | (928) |  |  | 18,529 |  |  | 190,829 |
Reconciliation of segment profit |  |  |  |
Unallocated corporate expenses |  |  |  |  |  |  |  |  | (40,100) |
Interest expense, net |  |  |  |  |  |  |  |  | (3,002) |
Other income, net |  |  |  |  |  |  |  |  | 1,265 |
Income before taxes |  |  |  |  |  |  |  |  | $ | 148,992 |
| 2022
| Residential |  | Renewables |  | Agtech |  | Infrastructure |  | Total
Net sales | $ | 767,248 |  |  | $ | 377,567 |  |  | $ | 168,868 |  |  | $ | 76,283 |  |  | $ | 1,389,966 |
Less (1): |  |  |  |  |  |  |  |  |
Operating expenses (2) | 640,790 |  |  | 352,324 |  |  | 165,954 |  |  | 67,280 |  |  | 1,226,348 |
Segment profit | 126,458 |  |  | 25,243 |  |  | 2,914 |  |  | 9,003 |  |  | 163,618 |
Reconciliation of segment profit |  |  |  |
Unallocated corporate expenses |  |  |  |  |  |  |  |  | (33,516) |
Interest expense, net |  |  |  |  |  |  |  |  | (4,047) |
Other expense, net |  |  |  |  |  |  |  |  | (14,565) |
Income before taxes |  |  |  |  |  |  |  |  | $ | 111,490 |
Footnotes: (1)The significant expense category and amounts align with the segment-level information that is regularly provided to the CODM. (2)Operating expenses for each reportable segment includes inventory and manufacturing expenses, employee compensation, depreciation and amortization, freight services, other costs of sales expenses, and other selling, general and administrative expenses. Additionally, operating expenses includes intangible asset impairment recognized in the Renewables and Agtech reportable segments during the year ended December 31, 2024 and intangible asset impairment in Agtech reportable segment during year ended December 31, 2023. There was no intangible asset impairment recognized during the year ended December 31, 2022. The Company’s CODM consisted of the Company’s chief executive officer during the years ended December 31, 2024, 2023 and 2022. For the Company’s reportable segments, the CODM uses segment income (loss) from operations before interest and income taxes to assess segment performance and allocate resources (including employees, property, and capital resources) for each segment mainly in the annual budget and forecasting process. The CODM considers forecast-to-actual variances on a monthly basis using the income (loss) from operation before interest and taxes for each segment when making decisions about allocating capital and personnel to the segments. The CODM also uses income (loss) from operations before interest and income taxes, along with net sales, to assess the performance for each segment by comparing the results of each segment with one another and in the compensation of certain employees. The following tables are the reported segment’s and unallocated corporate reported depreciation and amortization, and capital expenditures for the years ended December 31 (in thousands):
| 2024 |  | 2023 |  | 2022
Depreciation and Amortization |  |  |  |  |
Residential | $ | 10,416 |  |  | $ | 10,080 |  |  | $ | 8,983 |
Renewables | 8,192 |  |  | 8,671 |  |  | 8,467 |
Agtech | 3,165 |  |  | 3,789 |  |  | 4,377 |
Infrastructure | 2,972 |  |  | 3,137 |  |  | 3,150 |
Unallocated corporate expenses | 2,567 |  |  | 1,701 |  |  | 1,190 |
Total depreciation and amortization | $ | 27,312 |  |  | $ | 27,378 |  |  | $ | 26,167 |
Capital expenditures |  |  |  |  |
Residential | $ | 10,508 |  |  | $ | 6,913 |  |  | $ | 10,050 |
Renewables | 3,101 |  |  | 1,113 |  |  | 3,589 |
Agtech | 684 |  |  | 1,419 |  |  | 3,177 |
Infrastructure | 1,152 |  |  | 1,313 |  |  | 1,898 |
Unallocated corporate expenditures | 5,030 |  |  | 4,239 |  |  | 1,424 |
Total capital expenditures | $ | 20,475 |  |  | $ | 14,997 |  |  | $ | 20,138 |
The following table is the reported segment’s and unallocated corporate assets at December 31 (in thousands):
| 2024 |  | 2023 |  | 2022
Residential | $ | 497,317 |  |  | $ | 515,739 |  |  | $ | 519,567 |
Renewables | 390,881 |  |  | 377,694 |  |  | 392,368 |
Agtech | 156,929 |  |  | 168,213 |  |  | 193,966 |
Infrastructure | 78,366 |  |  | 77,518 |  |  | 80,264 |
Unallocated corporate assets | 295,917 |  |  | 117,287 |  |  | 24,448 |
Total assets | $ | 1,419,410 |  |  | $ | 1,256,451 |  |  | $ | 1,210,613 |
The following presents disaggregated revenue by timing of transfer of control to customers by reported segment for the years ended December 31 (in thousands):
| 2024
| Residential |  | Renewables |  | Agtech |  | Infrastructure |  | Total
Point in Time | $ | 775,541 |  |  | $ | 30,985 |  |  | $ | 2,862 |  |  | $ | 34,393 |  |  | $ | 843,781 |
Over Time | 6,978 |  |  | 254,420 |  |  | 149,949 |  |  | 53,636 |  |  | 464,983 |
Total net sales | $ | 782,519 |  |  | $ | 285,405 |  |  | $ | 152,811 |  |  | $ | 88,029 |  |  | $ | 1,308,764 |
| 2023
| Residential |  | Renewables |  | Agtech |  | Infrastructure |  | Total
Point in Time | $ | 808,225 |  |  | $ | 49,123 |  |  | $ | 4,920 |  |  | $ | 31,547 |  |  | $ | 893,815 |
Over Time | 6,578 |  |  | 281,615 |  |  | 140,047 |  |  | 55,681 |  |  | 483,921 |
Total net sales | $ | 814,803 |  |  | $ | 330,738 |  |  | $ | 144,967 |  |  | $ | 87,228 |  |  | $ | 1,377,736 |
| 2022
| Residential |  | Renewables |  | Agtech |  | Infrastructure |  | Total
Point in Time | $ | 761,576 |  |  | $ | 27,317 |  |  | $ | 13,011 |  |  | $ | 32,983 |  |  | $ | 834,887 |
Over Time | 5,672 |  |  | 350,250 |  |  | 155,857 |  |  | 43,300 |  |  | 555,079 |
Total net sales | $ | 767,248 |  |  | $ | 377,567 |  |  | $ | 168,868 |  |  | $ | 76,283 |  |  | $ | 1,389,966 |
Net sales by region or origin and long-lived assets by region of domicile for the years ended and as of December 31 were as follows (in thousands):
| 2024 |  | 2023 |  | 2022
Net sales |  |  |  |  |
North America | $ | 1,308,764 |  |  | $ | 1,366,012 |  |  | $ | 1,373,907 |
Asia | — |  |  | 11,724 |  |  | 16,059 |
Total net sales | $ | 1,308,764 |  |  | $ | 1,377,736 |  |  | $ | 1,389,966 |
Long-lived assets |  |  |  |  |
North America | $ | 156,707 |  |  | $ | 154,778 |  |  | $ | 136,553 |
Asia | 70 |  |  | 59 |  |  | 234 |
Total long-lived assets | $ | 156,777 |  |  | $ | 154,837 |  |  | $ | 136,787 |

X
- Definition The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments. + References Reference 1: http://www.xbrl.org/2003/role/exampleRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 55 -Paragraph 48 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 32 -Subparagraph (f) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32 Reference 3: http://www.xbrl.org/2003/role/disclosureRef -Topic 270 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 1 -Subparagraph (i) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1 Reference 4: http://www.xbrl.org/2003/role/disclosureRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 32 -Subparagraph (ee) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32 Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 32 -Subparagraph (d) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32 Reference 6: http://www.xbrl.org/2003/role/exampleRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 55 -Paragraph 54 -Subparagraph (d) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54 Reference 7: http://www.xbrl.org/2003/role/exampleRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 55 -Paragraph 47 -Subparagraph (c) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47 Reference 8: http://www.xbrl.org/2003/role/exampleRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 55 -Paragraph 54 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54 Reference 9: http://www.xbrl.org/2003/role/exampleRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 55 -Paragraph 47 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47 Reference 10: http://www.xbrl.org/2003/role/exampleRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 55 -Paragraph 54 -Subparagraph (e) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54 Reference 11: http://www.xbrl.org/2003/role/exampleRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 55 -Paragraph 47 -Subparagraph (d) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47 Reference 12: http://www.xbrl.org/2003/role/disclosureRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 22 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22 Reference 13: http://www.xbrl.org/2003/role/disclosureRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 31 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31 Reference 14: http://www.xbrl.org/2003/role/disclosureRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 34 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-34 Reference 15: http://www.xbrl.org/2003/role/disclosureRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 26C -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26C Reference 16: http://www.xbrl.org/2003/role/disclosureRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 26B -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26B Reference 17: http://www.xbrl.org/2003/role/disclosureRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 15 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-15 Reference 18: http://www.xbrl.org/2003/role/disclosureRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 42 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42 Reference 19: http://www.xbrl.org/2003/role/disclosureRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 40 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40 Reference 20: http://www.xbrl.org/2003/role/disclosureRef -Topic 280 -Name Accounting Standards Codification -Publisher FASB -URI https://asc.fasb.org/280/tableOfContent Reference 21: http://www.xbrl.org/2003/role/disclosureRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 26 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26 Reference 22: http://www.xbrl.org/2003/role/disclosureRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 41 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41 Reference 23: http://www.xbrl.org/2003/role/disclosureRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 21 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-21 Reference 24: http://www.xbrl.org/2003/role/disclosureRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 21 -Subparagraph (b) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-21 Reference 25: http://www.xbrl.org/2003/role/disclosureRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 32 -Subparagraph (e) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32 + Details
Name: | us-gaap_SegmentReportingDisclosureTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- References No definition available. + Details
Name: | us-gaap_SegmentReportingInformationRevenueAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration