XML 40 R29.htm IDEA: XBRL DOCUMENT
v3.25.3

Segment Information (Tables) | 9 Months Ended
--- | ---
Sep. 30, 2025
Segment Reporting [Abstract] |
Summary of information about reportable segments | The following tables present information about our reportable segments (in thousands): ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ |  | Mechanical Segment |  | Electrical Segment |  | Corporate |  | Consolidated
Total assets at September 30, 2025 | ​ | $ | 3,689,895 | ​ | $ | 1,184,210 | ​ | $ | 903,746 | ​ | $ | 5,777,851
Total assets at December 31, 2024 | ​ | $ | 3,162,677 | ​ | $ | 985,006 | ​ | $ | 563,405 | ​ | $ | 4,711,088
​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Three Months Ended September 30, 2025
​ |  | Mechanical Segment |  | Electrical Segment |  | Corporate |  | Consolidated
Revenue | ​ | $ | 1,810,462 | ​ | $ | 640,507 | ​ | $ | — | ​ | $ | 2,450,969
Cost of services | ​ | ​ | 1,370,687 | ​ | ​ | 472,411 | ​ | ​ | — | ​ | ​ | 1,843,098
Gross profit | ​ | ​ | 439,775 | ​ | ​ | 168,096 | ​ | ​ | — | ​ | ​ | 607,871
Selling, general and administrative expenses | ​ | ​ | 152,442 | ​ | ​ | 60,021 | ​ | ​ | 17,116 | ​ | ​ | 229,579
Gain on sale of assets | ​ | ​ | (418) | ​ | ​ | (164) | ​ | ​ | — | ​ | ​ | (582)
Operating income (loss) | ​ | $ | 287,751 | ​ | $ | 108,239 | ​ | $ | (17,116) | ​ | $ | 378,874
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Amortization of identifiable intangible assets | ​ | $ | 14,001 | ​ | $ | 5,525 | ​ | $ | — | ​ | $ | 19,526
Depreciation expense | ​ | $ | 13,048 | ​ | $ | 2,600 | ​ | $ | 400 | ​ | $ | 16,048
Capital expenditures | ​ | $ | 28,881 | ​ | $ | 5,787 | ​ | $ | 664 | ​ | $ | 35,332
​ ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Three Months Ended September 30, 2024
​ |  | Mechanical Segment |  | Electrical Segment |  | Corporate |  | Consolidated
Revenue | ​ | $ | 1,438,617 | ​ | $ | 373,749 | ​ | $ | — | ​ | $ | 1,812,366
Cost of services | ​ | ​ | 1,146,245 | ​ | ​ | 284,407 | ​ | ​ | — | ​ | ​ | 1,430,652
Gross profit | ​ | ​ | 292,372 | ​ | ​ | 89,342 | ​ | ​ | — | ​ | ​ | 381,714
Selling, general and administrative expenses | ​ | ​ | 127,591 | ​ | ​ | 39,612 | ​ | ​ | 12,974 | ​ | ​ | 180,177
Gain on sale of assets | ​ | ​ | (675) | ​ | ​ | (672) | ​ | ​ | — | ​ | ​ | (1,347)
Operating income (loss) | ​ | $ | 165,456 | ​ | $ | 50,402 | ​ | $ | (12,974) | ​ | $ | 202,884
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Amortization of identifiable intangible assets | ​ | $ | 18,896 | ​ | $ | 5,525 | ​ | $ | — | ​ | $ | 24,421
Depreciation expense | ​ | $ | 10,170 | ​ | $ | 1,877 | ​ | $ | 286 | ​ | $ | 12,333
Capital expenditures | ​ | $ | 18,234 | ​ | $ | 3,506 | ​ | $ | 319 | ​ | $ | 22,059
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Nine Months Ended September 30, 2025
​ |  | Mechanical Segment |  | Electrical Segment |  | Corporate |  | Consolidated
Revenue | ​ | $ | 4,851,349 | ​ | $ | 1,604,225 | ​ | $ | — | ​ | $ | 6,455,574
Cost of services | ​ | ​ | 3,732,449 | ​ | ​ | 1,201,941 | ​ | ​ | — | ​ | ​ | 4,934,390
Gross profit | ​ | ​ | 1,118,900 | ​ | ​ | 402,284 | ​ | ​ | — | ​ | ​ | 1,521,184
Selling, general and administrative expenses | ​ | ​ | 421,786 | ​ | ​ | 159,302 | ​ | ​ | 53,831 | ​ | ​ | 634,919
Gain on sale of assets | ​ | ​ | (1,141) | ​ | ​ | (439) | ​ | ​ | — | ​ | ​ | (1,580)
Operating income (loss) | ​ | $ | 698,255 | ​ | $ | 243,421 | ​ | $ | (53,831) | ​ | $ | 887,845
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Amortization of identifiable intangible assets | ​ | $ | 42,857 | ​ | $ | 16,575 | ​ | $ | — | ​ | $ | 59,432
Depreciation expense | ​ | $ | 36,545 | ​ | $ | 7,361 | ​ | $ | 1,008 | ​ | $ | 44,914
Capital expenditures | ​ | $ | 72,179 | ​ | $ | 15,419 | ​ | $ | 1,215 | ​ | $ | 88,813
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Nine Months Ended September 30, 2024
​ |  | Mechanical Segment |  | Electrical Segment |  | Corporate |  | Consolidated
Revenue | ​ | $ | 4,075,305 | ​ | $ | 1,084,367 | ​ | $ | — | ​ | $ | 5,159,672
Cost of services | ​ | ​ | 3,286,249 | ​ | ​ | 830,750 | ​ | ​ | — | ​ | ​ | 4,116,999
Gross profit | ​ | ​ | 789,056 | ​ | ​ | 253,617 | ​ | ​ | — | ​ | ​ | 1,042,673
Selling, general and administrative expenses | ​ | ​ | 363,201 | ​ | ​ | 114,630 | ​ | ​ | 44,606 | ​ | ​ | 522,437
Gain on sale of assets | ​ | ​ | (1,605) | ​ | ​ | (1,173) | ​ | ​ | — | ​ | ​ | (2,778)
Operating income (loss) | ​ | $ | 427,460 | ​ | $ | 140,160 | ​ | $ | (44,606) | ​ | $ | 523,014
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Amortization of identifiable intangible assets | ​ | $ | 58,355 | ​ | $ | 16,869 | ​ | $ | — | ​ | $ | 75,224
Depreciation expense | ​ | $ | 29,103 | ​ | $ | 5,401 | ​ | $ | 873 | ​ | $ | 35,377
Capital expenditures | ​ | $ | 56,403 | ​ | $ | 11,778 | ​ | $ | 2,214 | ​ | $ | 70,395
​

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