XML 29 R18.htm IDEA: XBRL DOCUMENT
v3.25.2

Segment Information | 6 Months Ended
--- | ---
Jun. 30, 2025
Segment Reporting [Abstract] |
Segment Information | 11. Segment Information Our activities are within the mechanical services industry and the electrical services industry, which represent our two reportable segments. We aggregate our operating segments into two reportable segments, as the operating segments meet all of the aggregation criteria. Segment information is prepared on the same basis that our Chief Operating Decision Maker (“CODM”) reviews financial information for operational decision-making purposes. Our CODM is the President and Chief Executive Officer. Our CODM allocates resources such as employees and capital resources primarily based on historical and potential future revenue, gross profit and operating income. Our CODM also uses segment gross profit and operating income when assessing pricing and performance by management teams in our operating segments. The following tables present information about our reportable segments (in thousands): ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ |  | Mechanical Segment |  | Electrical Segment |  | Corporate |  | Consolidated
Total assets at June 30, 2025 | ​ | $ | 3,633,522 | ​ | $ | 1,094,984 | ​ | $ | 335,223 | ​ | $ | 5,063,729
Total assets at December 31, 2024 | ​ | $ | 3,162,677 | ​ | $ | 985,006 | ​ | $ | 563,405 | ​ | $ | 4,711,088
​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Three Months Ended June 30, 2025
​ |  | Mechanical Segment |  | Electrical Segment |  | Corporate |  | Consolidated
Revenue | ​ | $ | 1,638,672 | ​ | $ | 534,647 | ​ | $ | — | ​ | $ | 2,173,319
Cost of services | ​ | ​ | 1,264,066 | ​ | ​ | 399,356 | ​ | ​ | — | ​ | ​ | 1,663,422
Gross profit | ​ | ​ | 374,606 | ​ | ​ | 135,291 | ​ | ​ | — | ​ | ​ | 509,897
Selling, general and administrative expenses | ​ | ​ | 137,074 | ​ | ​ | 55,235 | ​ | ​ | 18,157 | ​ | ​ | 210,466
Gain on sale of assets | ​ | ​ | (371) | ​ | ​ | (71) | ​ | ​ | — | ​ | ​ | (442)
Operating income | ​ | $ | 237,903 | ​ | $ | 80,127 | ​ | $ | (18,157) | ​ | $ | 299,873
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Amortization of identifiable intangible assets | ​ | $ | 14,266 | ​ | $ | 5,525 | ​ | $ | — | ​ | $ | 19,791
Depreciation expense | ​ | $ | 12,093 | ​ | $ | 2,458 | ​ | $ | 305 | ​ | $ | 14,856
Capital expenditures | ​ | $ | 24,879 | ​ | $ | 6,093 | ​ | $ | 301 | ​ | $ | 31,273
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Three Months Ended June 30, 2024
​ |  | Mechanical Segment |  | Electrical Segment |  | Corporate |  | Consolidated
Revenue | ​ | $ | 1,451,679 | ​ | $ | 358,611 | ​ | $ | — | ​ | $ | 1,810,290
Cost of services | ​ | ​ | 1,172,707 | ​ | ​ | 273,987 | ​ | ​ | — | ​ | ​ | 1,446,694
Gross profit | ​ | ​ | 278,972 | ​ | ​ | 84,624 | ​ | ​ | — | ​ | ​ | 363,596
Selling, general and administrative expenses | ​ | ​ | 124,628 | ​ | ​ | 41,138 | ​ | ​ | 13,771 | ​ | ​ | 179,537
Gain on sale of assets | ​ | ​ | (356) | ​ | ​ | (255) | ​ | ​ | — | ​ | ​ | (611)
Operating income | ​ | $ | 154,700 | ​ | $ | 43,741 | ​ | $ | (13,771) | ​ | $ | 184,670
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Amortization of identifiable intangible assets | ​ | $ | 21,365 | ​ | $ | 5,525 | ​ | $ | — | ​ | $ | 26,890
Depreciation expense | ​ | $ | 9,705 | ​ | $ | 1,804 | ​ | $ | 281 | ​ | $ | 11,790
Capital expenditures | ​ | $ | 18,227 | ​ | $ | 3,893 | ​ | $ | 1,264 | ​ | $ | 23,384
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Six Months Ended June 30, 2025
​ |  | Mechanical Segment |  | Electrical Segment |  | Corporate |  | Consolidated
Revenue | ​ | $ | 3,040,887 | ​ | $ | 963,718 | ​ | $ | — | ​ | $ | 4,004,605
Cost of services | ​ | ​ | 2,361,762 | ​ | ​ | 729,530 | ​ | ​ | — | ​ | ​ | 3,091,292
Gross profit | ​ | ​ | 679,125 | ​ | ​ | 234,188 | ​ | ​ | — | ​ | ​ | 913,313
Selling, general and administrative expenses | ​ | ​ | 269,344 | ​ | ​ | 99,281 | ​ | ​ | 36,715 | ​ | ​ | 405,340
Gain on sale of assets | ​ | ​ | (723) | ​ | ​ | (275) | ​ | ​ | — | ​ | ​ | (998)
Operating income | ​ | $ | 410,504 | ​ | $ | 135,182 | ​ | $ | (36,715) | ​ | $ | 508,971
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Amortization of identifiable intangible assets | ​ | $ | 28,856 | ​ | $ | 11,050 | ​ | $ | — | ​ | $ | 39,906
Depreciation expense | ​ | $ | 23,497 | ​ | $ | 4,761 | ​ | $ | 608 | ​ | $ | 28,866
Capital expenditures | ​ | $ | 43,298 | ​ | $ | 9,632 | ​ | $ | 551 | ​ | $ | 53,481
​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Six Months Ended June 30, 2024
​ |  | Mechanical Segment |  | Electrical Segment |  | Corporate |  | Consolidated
Revenue | ​ | $ | 2,636,688 | ​ | $ | 710,618 | ​ | $ | — | ​ | $ | 3,347,306
Cost of services | ​ | ​ | 2,140,004 | ​ | ​ | 546,343 | ​ | ​ | — | ​ | ​ | 2,686,347
Gross profit | ​ | ​ | 496,684 | ​ | ​ | 164,275 | ​ | ​ | — | ​ | ​ | 660,959
Selling, general and administrative expenses | ​ | ​ | 235,610 | ​ | ​ | 75,018 | ​ | ​ | 31,632 | ​ | ​ | 342,260
Gain on sale of assets | ​ | ​ | (930) | ​ | ​ | (501) | ​ | ​ | — | ​ | ​ | (1,431)
Operating income | ​ | $ | 262,004 | ​ | $ | 89,758 | ​ | $ | (31,632) | ​ | $ | 320,130
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Amortization of identifiable intangible assets | ​ | $ | 39,459 | ​ | $ | 11,344 | ​ | $ | — | ​ | $ | 50,803
Depreciation expense | ​ | $ | 18,933 | ​ | $ | 3,524 | ​ | $ | 587 | ​ | $ | 23,044
Capital expenditures | ​ | $ | 38,169 | ​ | $ | 8,272 | ​ | $ | 1,895 | ​ | $ | 48,336
​

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

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