XML 33 R22.htm IDEA: XBRL DOCUMENT
v3.10.0.1

Summary of Significant Accounting Policies - Disaggregation of Revenue (Details) - USD ($) $ in Thousands | 3 Months Ended | 9 Months Ended
--- | --- | ---
Sep. 30, 2018 | Sep. 30, 2017 | Sep. 30, 2018 | Sep. 30, 2017
Disaggregation of Revenue |  |  |  |
Receivable payment terms (in days) |  |  | 30 days |
Revenue | $ 594,536 |  | $ 1,594,520 |
Percentage of revenue from contract with customer (as a percent) | 100.00% |  | 100.00% |
Industrial |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 184,174 |  | $ 398,351 |
Percentage of revenue from contract with customer (as a percent) | 31.00% |  | 25.00% |
Education |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 115,202 |  | $ 312,852 |
Percentage of revenue from contract with customer (as a percent) | 19.40% |  | 19.60% |
Office Buildings |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 75,871 |  | $ 224,300 |
Percentage of revenue from contract with customer (as a percent) | 12.80% |  | 14.10% |
Healthcare |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 79,424 |  | $ 214,537 |
Percentage of revenue from contract with customer (as a percent) | 13.30% |  | 13.40% |
Government |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 32,633 |  | $ 106,065 |
Percentage of revenue from contract with customer (as a percent) | 5.50% |  | 6.60% |
Retail, Restaurants and Entertainment |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 60,908 |  | $ 169,899 |
Percentage of revenue from contract with customer (as a percent) | 10.20% |  | 10.70% |
Multi-Family and Residential |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 33,903 |  | $ 102,995 |
Percentage of revenue from contract with customer (as a percent) | 5.70% |  | 6.50% |
Other |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 12,421 |  | $ 65,521 |
Percentage of revenue from contract with customer (as a percent) | 2.10% |  | 4.10% |
New Construction |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 232,192 |  | $ 599,627 |
Percentage of revenue from contract with customer (as a percent) | 39.10% |  | 37.60% |
Existing Building Construction |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 203,618 |  | $ 566,590 |
Percentage of revenue from contract with customer (as a percent) | 34.20% |  | 35.50% |
Small Projects |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 57,322 |  | $ 149,083 |
Percentage of revenue from contract with customer (as a percent) | 9.60% |  | 9.40% |
Service Calls, Maintenance and Monitoring |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 101,404 |  | $ 279,220 |
Percentage of revenue from contract with customer (as a percent) | 17.10% |  | 17.50% |
HVAC and Plumbing |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 540,733 |  | $ 1,448,761 |
Percentage of revenue from contract with customer (as a percent) | 91.00% |  | 90.90% |
Building Automation Control Systems |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 25,822 |  | $ 72,128 |
Percentage of revenue from contract with customer (as a percent) | 4.30% |  | 4.50% |
Other |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 27,981 |  | $ 73,631 |
Percentage of revenue from contract with customer (as a percent) | 4.70% |  | 4.60% |
Calculated under Revenue Guidance in Effect before Topic 606 [Member] |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue |  | $ 480,851 |  | $ 1,326,850
Percentage of revenue from contract with customer (as a percent) |  | 100.00% |  | 100.00%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Industrial |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue |  | $ 110,569 |  | $ 295,939
Percentage of revenue from contract with customer (as a percent) |  | 23.00% |  | 22.30%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Education |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue |  | $ 102,459 |  | $ 253,321
Percentage of revenue from contract with customer (as a percent) |  | 21.30% |  | 19.10%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Office Buildings |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue |  | $ 49,646 |  | $ 178,550
Percentage of revenue from contract with customer (as a percent) |  | 10.30% |  | 13.50%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Healthcare |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue |  | $ 60,427 |  | $ 171,516
Percentage of revenue from contract with customer (as a percent) |  | 12.60% |  | 12.90%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Government |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue |  | $ 33,745 |  | $ 105,304
Percentage of revenue from contract with customer (as a percent) |  | 7.00% |  | 7.90%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Retail, Restaurants and Entertainment |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue |  | $ 67,959 |  | $ 167,853
Percentage of revenue from contract with customer (as a percent) |  | 14.10% |  | 12.70%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Multi-Family and Residential |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue |  | $ 29,335 |  | $ 86,465
Percentage of revenue from contract with customer (as a percent) |  | 6.10% |  | 6.50%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Other |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue |  | $ 26,711 |  | $ 67,902
Percentage of revenue from contract with customer (as a percent) |  | 5.60% |  | 5.10%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | New Construction |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue |  | $ 170,540 |  | $ 497,443
Percentage of revenue from contract with customer (as a percent) |  | 35.50% |  | 37.50%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Existing Building Construction |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue |  | $ 163,932 |  | $ 429,178
Percentage of revenue from contract with customer (as a percent) |  | 34.10% |  | 32.30%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Small Projects |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue |  | $ 50,232 |  | $ 139,269
Percentage of revenue from contract with customer (as a percent) |  | 10.40% |  | 10.50%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Service Calls, Maintenance and Monitoring |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue |  | $ 96,147 |  | $ 260,960
Percentage of revenue from contract with customer (as a percent) |  | 20.00% |  | 19.70%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | HVAC and Plumbing |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue |  | $ 446,035 |  | $ 1,207,434
Percentage of revenue from contract with customer (as a percent) |  | 92.80% |  | 91.00%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Building Automation Control Systems |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue |  | $ 15,583 |  | $ 66,343
Percentage of revenue from contract with customer (as a percent) |  | 3.20% |  | 5.00%
Calculated under Revenue Guidance in Effect before Topic 606 [Member] | Other |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue |  | $ 19,233 |  | $ 53,073
Percentage of revenue from contract with customer (as a percent) |  | 4.00% |  | 4.00%
Minimum |  |  |  |
Disaggregation of Revenue |  |  |  |
Payments received term (in days) |  |  | 30 days |
Maximum |  |  |  |
Disaggregation of Revenue |  |  |  |
Payments received term (in days) |  |  | 90 days |

X
- Definition The number of days in which the entity receives payment from customers. + References No definition available. + Details
Name: | fix_PaymentsReceivedTerm
Namespace Prefix: | fix_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Definition The percentage of revenue from contract with customers. + References No definition available. + Details
Name: | fix_PercentageOfRevenueFromContractWithCustomer
Namespace Prefix: | fix_
Data Type: | num:percentItemType
Balance Type: | na
Period Type: | duration

X
- Definition The payment terms for receivables in days. + References No definition available. + Details
Name: | fix_ReceivableDueTerm
Namespace Prefix: | fix_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Definition Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table. + References No definition available. + Details
Name: | us-gaap_DisaggregationOfRevenueLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 50 -Paragraph 4 -Subparagraph (a) -URI http://asc.fasb.org/extlink&oid=109196051&loc=SL49130543-203045 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 50 -Paragraph 1 -Subparagraph (a) -URI http://asc.fasb.org/extlink&oid=109196051&loc=SL49130539-203045 Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 50 -Paragraph 5 -URI http://asc.fasb.org/extlink&oid=109196051&loc=SL49130545-203045 + Details
Name: | us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Details
Name: | srt_MajorCustomersAxis=srt_IndustrialPropertyMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_MajorCustomersAxis=fix_EducationMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_MajorCustomersAxis=srt_OfficeBuildingMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_MajorCustomersAxis=us-gaap_HealthcareSectorMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_MajorCustomersAxis=us-gaap_GovernmentMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_MajorCustomersAxis=fix_RetailRestaurantsAndEntertainmentMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_MajorCustomersAxis=fix_MultiFamilyAndResidentialMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_MajorCustomersAxis=fix_OtherCustomerMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_StatementBusinessSegmentsAxis=fix_NewConstructionMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_StatementBusinessSegmentsAxis=fix_ExistingBuildingConstructionMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_StatementBusinessSegmentsAxis=fix_SmallProjectsMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_StatementBusinessSegmentsAxis=fix_ServiceCallsMaintenanceAndMonitoringMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_ProductOrServiceAxis=fix_HeatingVentilationAndAirConditioningAndPlumbingMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_ProductOrServiceAxis=fix_BuildingAutomationControlSystemsMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_ProductOrServiceAxis=us-gaap_ProductAndServiceOtherMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis=us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_RangeAxis=srt_MinimumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_RangeAxis=srt_MaximumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |