XML 56 R45.htm IDEA: XBRL DOCUMENT v3.24.3
Revenue - Disaggregation of revenue by customer type and contract type (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        
Revenue $ 1,649,086 $ 1,529,486 $ 4,625,508 $ 4,199,760
Fixed price        
Disaggregation of Revenue        
Revenue 669,318 642,339 1,941,110 1,838,526
Unit price        
Disaggregation of Revenue        
Revenue 616,768 574,429 1,607,797 1,577,748
Cost reimbursable        
Disaggregation of Revenue        
Revenue 363,000 312,718 1,076,601 783,486
MSA        
Disaggregation of Revenue        
Revenue 625,016 583,785 1,673,451 1,577,291
Non-MSA        
Disaggregation of Revenue        
Revenue 1,024,070 945,701 2,952,057 2,622,469
Intersegment eliminations        
Disaggregation of Revenue        
Revenue (28,012) (8,921) (81,382) (28,019)
Intersegment eliminations | Fixed price        
Disaggregation of Revenue        
Revenue (27,748) (1,660) (79,233) (7,719)
Intersegment eliminations | Unit price        
Disaggregation of Revenue        
Revenue (128) (5,444) (1,893) (17,309)
Intersegment eliminations | Cost reimbursable        
Disaggregation of Revenue        
Revenue (136) (1,817) (256) (2,991)
Intersegment eliminations | MSA        
Disaggregation of Revenue        
Revenue (20) (768) (258) (5,385)
Intersegment eliminations | Non-MSA        
Disaggregation of Revenue        
Revenue (27,992) (8,153) (81,124) (22,634)
Utilities | Operating Segment        
Disaggregation of Revenue        
Revenue 666,240 650,664 1,774,962 1,833,665
Utilities | Operating Segment | Fixed price        
Disaggregation of Revenue        
Revenue 88,167 107,024 268,738 294,709
Utilities | Operating Segment | Unit price        
Disaggregation of Revenue        
Revenue 437,493 411,636 1,122,898 1,146,601
Utilities | Operating Segment | Cost reimbursable        
Disaggregation of Revenue        
Revenue 140,580 132,004 383,326 392,355
Utilities | Operating Segment | MSA        
Disaggregation of Revenue        
Revenue 552,741 505,728 1,430,696 1,359,495
Utilities | Operating Segment | Non-MSA        
Disaggregation of Revenue        
Revenue 113,499 144,936 344,266 474,170
Energy | Operating Segment        
Disaggregation of Revenue        
Revenue 1,010,858 887,743 2,931,928 2,394,114
Energy | Operating Segment | Fixed price        
Disaggregation of Revenue        
Revenue 608,899 536,975 1,751,605 1,551,536
Energy | Operating Segment | Unit price        
Disaggregation of Revenue        
Revenue 179,403 168,237 486,792 448,456
Energy | Operating Segment | Cost reimbursable        
Disaggregation of Revenue        
Revenue 222,556 182,531 693,531 394,122
Energy | Operating Segment | MSA        
Disaggregation of Revenue        
Revenue 72,295 78,825 243,013 223,181
Energy | Operating Segment | Non-MSA        
Disaggregation of Revenue        
Revenue $ 938,563 $ 808,918 $ 2,688,915 $ 2,170,933