XML 100 R40.htm IDEA: XBRL DOCUMENT v3.19.3.a.u2
Summary of Significant Accounting Policies - Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2019
Dec. 31, 2018
Dec. 31, 2017
Disaggregation of Revenue      
Revenue $ 2,615,277 $ 2,182,879  
Percentage of revenue from contract with customer (as a percent) 100.00% 100.00%  
Industrial      
Disaggregation of Revenue      
Revenue $ 886,668 $ 596,557  
Percentage of revenue from contract with customer (as a percent) 33.90% 27.30%  
Education      
Disaggregation of Revenue      
Revenue $ 412,318 $ 391,937  
Percentage of revenue from contract with customer (as a percent) 15.80% 18.00%  
Office Buildings      
Disaggregation of Revenue      
Revenue $ 348,640 $ 288,090  
Percentage of revenue from contract with customer (as a percent) 13.30% 13.20%  
Healthcare      
Disaggregation of Revenue      
Revenue $ 358,155 $ 319,958  
Percentage of revenue from contract with customer (as a percent) 13.70% 14.70%  
Government      
Disaggregation of Revenue      
Revenue $ 162,507 $ 143,958  
Percentage of revenue from contract with customer (as a percent) 6.20% 6.60%  
Retail, Restaurants and Entertainment      
Disaggregation of Revenue      
Revenue $ 248,083 $ 225,348  
Percentage of revenue from contract with customer (as a percent) 9.50% 10.30%  
Multi-Family and Residential      
Disaggregation of Revenue      
Revenue $ 104,693 $ 136,075  
Percentage of revenue from contract with customer (as a percent) 4.00% 6.20%  
Other      
Disaggregation of Revenue      
Revenue $ 94,213 $ 80,956  
Percentage of revenue from contract with customer (as a percent) 3.60% 3.70%  
New Construction      
Disaggregation of Revenue      
Revenue $ 1,201,122 $ 829,978  
Percentage of revenue from contract with customer (as a percent) 45.90% 38.00%  
Existing Building Construction      
Disaggregation of Revenue      
Revenue $ 793,159 $ 796,946  
Percentage of revenue from contract with customer (as a percent) 30.30% 36.50%  
Service Projects      
Disaggregation of Revenue      
Revenue $ 231,228 $ 206,506  
Percentage of revenue from contract with customer (as a percent) 8.90% 9.50%  
Service Calls, Maintenance and Monitoring      
Disaggregation of Revenue      
Revenue $ 389,768 $ 349,449  
Percentage of revenue from contract with customer (as a percent) 14.90% 16.00%  
Mechanical Services      
Disaggregation of Revenue      
Revenue $ 2,251,560 $ 2,176,223  
Percentage of revenue from contract with customer (as a percent) 86.10% 99.70%  
Electrical Services      
Disaggregation of Revenue      
Revenue $ 363,717 $ 6,656  
Percentage of revenue from contract with customer (as a percent) 13.90% 0.30%  
Calculated under Revenue Guidance in Effect before Topic 606 [Member]      
Disaggregation of Revenue      
Revenue     $ 1,787,922
Percentage of revenue from contract with customer (as a percent)     100.00%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Industrial      
Disaggregation of Revenue      
Revenue     $ 395,362
Percentage of revenue from contract with customer (as a percent)     22.10%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Education      
Disaggregation of Revenue      
Revenue     $ 351,808
Percentage of revenue from contract with customer (as a percent)     19.70%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Office Buildings      
Disaggregation of Revenue      
Revenue     $ 248,604
Percentage of revenue from contract with customer (as a percent)     13.90%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Healthcare      
Disaggregation of Revenue      
Revenue     $ 224,643
Percentage of revenue from contract with customer (as a percent)     12.60%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Government      
Disaggregation of Revenue      
Revenue     $ 140,843
Percentage of revenue from contract with customer (as a percent)     7.90%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Retail, Restaurants and Entertainment      
Disaggregation of Revenue      
Revenue     $ 223,593
Percentage of revenue from contract with customer (as a percent)     12.50%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Multi-Family and Residential      
Disaggregation of Revenue      
Revenue     $ 116,844
Percentage of revenue from contract with customer (as a percent)     6.50%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Other      
Disaggregation of Revenue      
Revenue     $ 86,225
Percentage of revenue from contract with customer (as a percent)     4.80%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | New Construction      
Disaggregation of Revenue      
Revenue     $ 684,687
Percentage of revenue from contract with customer (as a percent)     38.30%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Existing Building Construction      
Disaggregation of Revenue      
Revenue     $ 580,737
Percentage of revenue from contract with customer (as a percent)     32.40%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Service Projects      
Disaggregation of Revenue      
Revenue     $ 197,703
Percentage of revenue from contract with customer (as a percent)     11.10%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Service Calls, Maintenance and Monitoring      
Disaggregation of Revenue      
Revenue     $ 324,795
Percentage of revenue from contract with customer (as a percent)     18.20%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Mechanical Services      
Disaggregation of Revenue      
Revenue     $ 1,787,922
Percentage of revenue from contract with customer (as a percent)     100.00%