XML 37 R23.htm IDEA: XBRL DOCUMENT v3.8.0.1
Summary of Significant Accounting Policies - Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2018
Mar. 31, 2017
Disaggregation of Revenue    
Receivable payment terms (in days) 30 days  
Revenue $ 464,941  
Percentage of revenue from contract with customer (as a percent) 100.00%  
Industrial    
Disaggregation of Revenue    
Revenue $ 100,100  
Percentage of revenue from contract with customer (as a percent) 22.00%  
Education    
Disaggregation of Revenue    
Revenue $ 88,203  
Percentage of revenue from contract with customer (as a percent) 19.00%  
Office Buildings    
Disaggregation of Revenue    
Revenue $ 69,120  
Percentage of revenue from contract with customer (as a percent) 15.00%  
Healthcare    
Disaggregation of Revenue    
Revenue $ 63,183  
Percentage of revenue from contract with customer (as a percent) 14.00%  
Government    
Disaggregation of Revenue    
Revenue $ 36,147  
Percentage of revenue from contract with customer (as a percent) 8.00%  
Retail, Restaurants and Entertainment    
Disaggregation of Revenue    
Revenue $ 52,787  
Percentage of revenue from contract with customer (as a percent) 11.00%  
Multi-Family and Residential    
Disaggregation of Revenue    
Revenue $ 33,052  
Percentage of revenue from contract with customer (as a percent) 7.00%  
Other    
Disaggregation of Revenue    
Revenue $ 22,349  
Percentage of revenue from contract with customer (as a percent) 4.00%  
New Construction    
Disaggregation of Revenue    
Revenue $ 183,437  
Percentage of revenue from contract with customer (as a percent) 39.00%  
Existing Building Construction    
Disaggregation of Revenue    
Revenue $ 155,197  
Percentage of revenue from contract with customer (as a percent) 33.00%  
Small Projects    
Disaggregation of Revenue    
Revenue $ 40,175  
Percentage of revenue from contract with customer (as a percent) 9.00%  
Service Calls, Maintenance and Monitoring    
Disaggregation of Revenue    
Revenue $ 86,132  
Percentage of revenue from contract with customer (as a percent) 19.00%  
HVAC and Plumbing    
Disaggregation of Revenue    
Revenue $ 424,017  
Percentage of revenue from contract with customer (as a percent) 91.00%  
Building Automation Control Systems    
Disaggregation of Revenue    
Revenue $ 20,045  
Percentage of revenue from contract with customer (as a percent) 4.00%  
Other    
Disaggregation of Revenue    
Revenue $ 20,879  
Percentage of revenue from contract with customer (as a percent) 5.00%  
Calculated under Revenue Guidance in Effect before Topic 606 [Member]    
Disaggregation of Revenue    
Revenue   $ 380,588
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   $ 87,614
Percentage of revenue from contract with customer (as a percent)   23.00%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Education    
Disaggregation of Revenue    
Revenue   $ 61,588
Percentage of revenue from contract with customer (as a percent)   16.00%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Office Buildings    
Disaggregation of Revenue    
Revenue   $ 52,434
Percentage of revenue from contract with customer (as a percent)   14.00%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Healthcare    
Disaggregation of Revenue    
Revenue   $ 51,767
Percentage of revenue from contract with customer (as a percent)   14.00%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Government    
Disaggregation of Revenue    
Revenue   $ 36,236
Percentage of revenue from contract with customer (as a percent)   10.00%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Retail, Restaurants and Entertainment    
Disaggregation of Revenue    
Revenue   $ 45,225
Percentage of revenue from contract with customer (as a percent)   12.00%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Multi-Family and Residential    
Disaggregation of Revenue    
Revenue   $ 26,870
Percentage of revenue from contract with customer (as a percent)   7.00%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Other    
Disaggregation of Revenue    
Revenue   $ 18,854
Percentage of revenue from contract with customer (as a percent)   4.00%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | New Construction    
Disaggregation of Revenue    
Revenue   $ 148,511
Percentage of revenue from contract with customer (as a percent)   39.00%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Existing Building Construction    
Disaggregation of Revenue    
Revenue   $ 118,266
Percentage of revenue from contract with customer (as a percent)   31.00%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Small Projects    
Disaggregation of Revenue    
Revenue   $ 42,609
Percentage of revenue from contract with customer (as a percent)   11.00%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Service Calls, Maintenance and Monitoring    
Disaggregation of Revenue    
Revenue   $ 71,202
Percentage of revenue from contract with customer (as a percent)   19.00%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | HVAC and Plumbing    
Disaggregation of Revenue    
Revenue   $ 338,723
Percentage of revenue from contract with customer (as a percent)   89.00%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Building Automation Control Systems    
Disaggregation of Revenue    
Revenue   $ 22,835
Percentage of revenue from contract with customer (as a percent)   6.00%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Other    
Disaggregation of Revenue    
Revenue   $ 19,030
Percentage of revenue from contract with customer (as a percent)   5.00%
Minimum    
Disaggregation of Revenue    
Payments received term (in days) 30 days  
Maximum    
Disaggregation of Revenue    
Payments received term (in days) 90 days