XML 57 R45.htm IDEA: XBRL DOCUMENT v3.24.3
Revenue from Contracts with Customers - Schedule of the Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2024
Sep. 30, 2023
Sep. 30, 2024
Sep. 30, 2023
Disaggregation of Revenue [Line Items]        
Operating revenue $ 760,985 $ 717,406 $ 2,090,047 $ 2,218,672
Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue 765,399 721,361 2,105,555 2,229,661
Eliminations        
Disaggregation of Revenue [Line Items]        
Operating revenue (4,414) (3,955) (15,508) (10,989)
Fixed-price | Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue 433,908 364,649 1,248,617 1,045,791
Unit-price | Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue 61,879 47,991 167,270 124,889
Cost reimbursable | Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue 269,612 308,721 689,668 1,058,981
Electrical & Mechanical        
Disaggregation of Revenue [Line Items]        
Operating revenue 534,741 514,378 1,476,151 1,672,948
Electrical & Mechanical | Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue 536,895 516,933 1,481,778 1,680,210
Electrical & Mechanical | Eliminations        
Disaggregation of Revenue [Line Items]        
Operating revenue (2,154) (2,555) (5,627) (7,262)
Electrical & Mechanical | Commercial | Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue 327,403 266,587 860,088 947,792
Electrical & Mechanical | Industrial | Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue 76,493 116,013 236,349 367,331
Electrical & Mechanical | Institutional | Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue 93,390 76,276 274,916 195,178
Electrical & Mechanical | Renewables | Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue 10,414 19,244 27,551 43,947
Electrical & Mechanical | Service & other | Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue 29,195 38,813 82,874 125,962
Electrical & Mechanical | Fixed-price | Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue 326,972 272,042 966,035 784,334
Electrical & Mechanical | Unit-price | Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue 15,031 18,401 49,254 62,488
Electrical & Mechanical | Cost reimbursable | Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue 194,892 226,490 466,489 833,388
Transmission & Distribution        
Disaggregation of Revenue [Line Items]        
Operating revenue 226,244 203,028 613,896 545,724
Transmission & Distribution | Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue 228,504 204,428 623,777 549,451
Transmission & Distribution | Eliminations        
Disaggregation of Revenue [Line Items]        
Operating revenue (2,260) (1,400) (9,881) (3,727)
Transmission & Distribution | Utility | Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue 206,669 188,680 559,922 508,850
Transmission & Distribution | Transportation | Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue 21,835 15,748 63,855 40,601
Transmission & Distribution | Fixed-price | Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue 106,936 92,607 282,582 261,457
Transmission & Distribution | Unit-price | Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue 46,848 29,590 118,016 62,401
Transmission & Distribution | Cost reimbursable | Operating segments        
Disaggregation of Revenue [Line Items]        
Operating revenue $ 74,720 $ 82,231 $ 223,179 $ 225,593