XML 58 R48.htm IDEA: XBRL DOCUMENT v3.22.1
Revenue - Disaggregation of revenue by customer type and contract type (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Disaggregation of Revenue    
Revenue $ 784,384 $ 818,329
Fixed price    
Disaggregation of Revenue    
Revenue 305,690 328,907
Unit price    
Disaggregation of Revenue    
Revenue 325,546 309,151
Cost reimbursable    
Disaggregation of Revenue    
Revenue 153,148 180,271
MSA    
Disaggregation of Revenue    
Revenue 349,295 338,263
Non-MSA    
Disaggregation of Revenue    
Revenue 435,089 480,066
Utilities    
Disaggregation of Revenue    
Revenue 358,728 335,012
Utilities | Fixed price    
Disaggregation of Revenue    
Revenue 31,517 27,516
Utilities | Unit price    
Disaggregation of Revenue    
Revenue 242,309 229,743
Utilities | Cost reimbursable    
Disaggregation of Revenue    
Revenue 84,902 77,753
Utilities | MSA    
Disaggregation of Revenue    
Revenue 290,366 277,967
Utilities | Non-MSA    
Disaggregation of Revenue    
Revenue 68,362 57,045
Energy/Renewables    
Disaggregation of Revenue    
Revenue 359,050 352,864
Energy/Renewables | Fixed price    
Disaggregation of Revenue    
Revenue 219,021 188,234
Energy/Renewables | Unit price    
Disaggregation of Revenue    
Revenue 82,572 78,743
Energy/Renewables | Cost reimbursable    
Disaggregation of Revenue    
Revenue 57,457 85,887
Energy/Renewables | MSA    
Disaggregation of Revenue    
Revenue 45,234 42,586
Energy/Renewables | Non-MSA    
Disaggregation of Revenue    
Revenue 313,816 310,278
Pipeline    
Disaggregation of Revenue    
Revenue 66,606 130,453
Pipeline | Fixed price    
Disaggregation of Revenue    
Revenue 55,152 113,157
Pipeline | Unit price    
Disaggregation of Revenue    
Revenue 665 665
Pipeline | Cost reimbursable    
Disaggregation of Revenue    
Revenue 10,789 16,631
Pipeline | MSA    
Disaggregation of Revenue    
Revenue 13,695 17,710
Pipeline | Non-MSA    
Disaggregation of Revenue    
Revenue $ 52,911 $ 112,743