XML 72 R53.htm IDEA: XBRL DOCUMENT
v3.26.1

Segment Information (Tables) | 12 Months Ended
--- | ---
Dec. 31, 2025
Segment Reporting [Abstract] |
Schedule of Segment Reporting Information, by Segment | The following table presents relevant segment information (in thousands):
| Year Ended December 31,
| 2025 |  | 2024 |  | 2023
Revenue: |  |  |  |  |
Engineering & Consulting | $ | 726,293 |  |  | $ | 601,602 |  |  | $ | 426,246 |
Installation & Maintenance | 1,824,198 |  |  | 1,497,000 |  |  | 1,188,816 |
Revenue | $ | 2,550,491 |  |  | $ | 2,098,602 |  |  | $ | 1,615,062 |
Cost of revenue: |  |  |  |  |
Engineering & Consulting | $ | 487,424 |  |  | $ | 396,517 |  |  | $ | 278,354 |
Installation & Maintenance | $ | 1,527,142 |  |  | $ | 1,271,318 |  |  | $ | 1,021,562 |
Gross profit: |  |  |  |  |
Engineering & Consulting | $ | 238,869 |  |  | $ | 205,085 |  |  | $ | 147,892 |
Installation & Maintenance | 297,056 |  |  | 225,682 |  |  | 167,254 |
Gross profit | $ | 535,925 |  |  | $ | 430,767 |  |  | $ | 315,146 |
The following table presents the reconciliation from Gross profit to Loss before income tax (in thousands):
| Year Ended December 31,
| 2025 |  | 2024 |  | 2023
Gross profit | $ | 535,925 |  |  | $ | 430,767 |  |  | $ | 315,146 |
Selling, general and administrative | 342,627 |  |  | 242,888 |  |  | 186,058 |
Depreciation and amortization | 100,365 |  |  | 97,153 |  |  | 80,241 |
Acquisition-related costs | 5,739 |  |  | 5,634 |  |  | 3,794 |
Changes in the fair value of contingent consideration liabilities | — |  |  | — |  |  | 31,071 |
Gain on sale of property and equipment | (326) |  |  | — |  |  | — |
Goodwill impairment | 24,966 |  |  | 17,804 |  |  | 5,051 |
Long-lived asset impairment | 2,415 |  |  | — |  |  | — |
Equity in earnings of joint venture | (1,443) |  |  | (3,063) |  |  | (1,329) |
Interest expense, net of capitalized interest | 101,778 |  |  | 91,609 |  |  | 68,196 |
Interest income | (4,488) |  |  | (5,464) |  |  | (4,249) |
Loss on debt extinguishment | 6,651 |  |  | — |  |  | — |
Credit agreement amendment fees | 6,302 |  |  | 7,801 |  |  | — |
Other (income) expense, net | 6,481 |  |  | (473) |  |  | 257 |
Loss before income tax | $ | (55,142) |  |  | $ | (23,122) |  |  | $ | (53,944) |

X
- Definition Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 25 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-25 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 22 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22 Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 30 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30 + Details
Name: | us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

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