XML 59 R49.htm IDEA: XBRL DOCUMENT v3.23.3
Revenue - Disaggregation of revenue by customer type and contract type (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2023
Sep. 30, 2022
Sep. 30, 2023
Sep. 30, 2022
Disaggregation of Revenue        
Revenue $ 1,529,486 $ 1,284,128 $ 4,199,760 $ 3,091,461
Fixed price        
Disaggregation of Revenue        
Revenue 642,254 498,643 1,838,526 1,203,811
Unit price        
Disaggregation of Revenue        
Revenue 574,514 549,705 1,577,748 1,329,367
Cost reimbursable        
Disaggregation of Revenue        
Revenue 312,718 235,780 783,486 558,283
MSA        
Disaggregation of Revenue        
Revenue 584,026 605,847 1,577,291 1,451,390
Non-MSA        
Disaggregation of Revenue        
Revenue 945,460 678,281 2,622,469 1,640,071
Utilities        
Disaggregation of Revenue        
Revenue 644,639 613,008 1,813,768 1,447,857
Utilities | Fixed price        
Disaggregation of Revenue        
Revenue 106,267 58,602 290,320 123,742
Utilities | Unit price        
Disaggregation of Revenue        
Revenue 406,368 397,204 1,131,044 988,477
Utilities | Cost reimbursable        
Disaggregation of Revenue        
Revenue 132,004 157,202 392,404 335,638
Utilities | MSA        
Disaggregation of Revenue        
Revenue 505,301 516,363 1,354,642 1,226,511
Utilities | Non-MSA        
Disaggregation of Revenue        
Revenue 139,338 96,645 459,126 221,346
Energy        
Disaggregation of Revenue        
Revenue 884,847 671,120 2,385,992 1,643,604
Energy | Fixed price        
Disaggregation of Revenue        
Revenue 535,987 440,041 1,548,206 1,080,069
Energy | Unit price        
Disaggregation of Revenue        
Revenue 168,146 152,501 446,704 340,890
Energy | Cost reimbursable        
Disaggregation of Revenue        
Revenue 180,714 78,578 391,082 222,645
Energy | MSA        
Disaggregation of Revenue        
Revenue 78,725 89,484 222,649 224,879
Energy | Non-MSA        
Disaggregation of Revenue        
Revenue $ 806,122 $ 581,636 $ 2,163,343 $ 1,418,725