XML 36 R25.htm IDEA: XBRL DOCUMENT
v3.20.2

Summary of Significant Accounting Policies - Disaggregation of Revenue (Details) - USD ($) $ in Thousands | 3 Months Ended | 9 Months Ended
--- | --- | ---
Sep. 30, 2020 | Sep. 30, 2019 | Sep. 30, 2020 | Sep. 30, 2019
Disaggregation of Revenue |  |  |  |
Revenue | $ 714,099 | $ 706,918 | $ 2,157,698 | $ 1,895,693
Percentage of revenue from contract with customer (as a percent) | 100.00% | 100.00% | 100.00% | 100.00%
Industrial |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 268,651 | $ 222,156 | $ 844,719 | $ 588,818
Percentage of revenue from contract with customer (as a percent) | 37.60% | 31.40% | 39.10% | 31.10%
Education |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 135,992 | $ 125,836 | $ 375,580 | $ 292,799
Percentage of revenue from contract with customer (as a percent) | 19.00% | 17.80% | 17.40% | 15.40%
Office Buildings |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 81,183 | $ 83,271 | $ 232,349 | $ 254,966
Percentage of revenue from contract with customer (as a percent) | 11.40% | 11.80% | 10.80% | 13.50%
Healthcare |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 86,061 | $ 126,909 | $ 281,370 | $ 306,810
Percentage of revenue from contract with customer (as a percent) | 12.10% | 18.00% | 13.00% | 16.20%
Government |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 40,631 | $ 41,502 | $ 119,444 | $ 118,224
Percentage of revenue from contract with customer (as a percent) | 5.70% | 5.90% | 5.50% | 6.20%
Retail, Restaurants and Entertainment |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 64,212 | $ 67,141 | $ 190,043 | $ 184,618
Percentage of revenue from contract with customer (as a percent) | 9.00% | 9.50% | 8.80% | 9.70%
Multi-Family and Residential |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 21,776 | $ 24,121 | $ 61,062 | $ 83,417
Percentage of revenue from contract with customer (as a percent) | 3.00% | 3.40% | 2.80% | 4.40%
Other |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 15,593 | $ 15,982 | $ 53,131 | $ 66,041
Percentage of revenue from contract with customer (as a percent) | 2.20% | 2.20% | 2.60% | 3.50%
New Construction |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 310,000 | $ 312,279 | $ 1,034,833 | $ 827,718
Percentage of revenue from contract with customer (as a percent) | 43.40% | 44.20% | 48.00% | 43.70%
Existing Building Construction |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 235,798 | $ 224,125 | $ 668,067 | $ 605,819
Percentage of revenue from contract with customer (as a percent) | 33.00% | 31.60% | 30.90% | 31.90%
Service Projects |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 69,162 | $ 62,668 | $ 179,188 | $ 171,860
Percentage of revenue from contract with customer (as a percent) | 9.70% | 8.90% | 8.30% | 9.10%
Service Calls, Maintenance and Monitoring |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 99,139 | $ 107,846 | $ 275,610 | $ 290,296
Percentage of revenue from contract with customer (as a percent) | 13.90% | 15.30% | 12.80% | 15.30%
Mechanical Services |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 621,140 | $ 590,016 | $ 1,809,304 | $ 1,677,632
Percentage of revenue from contract with customer (as a percent) | 87.00% | 83.50% | 83.90% | 88.50%
Electrical Services |  |  |  |
Disaggregation of Revenue |  |  |  |
Revenue | $ 92,959 | $ 116,902 | $ 348,394 | $ 218,061
Percentage of revenue from contract with customer (as a percent) | 13.00% | 16.50% | 16.10% | 11.50%

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 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://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 30 -Subparagraph (a) -URI http://asc.fasb.org/extlink&oid=120311839&loc=d3e8906-108599 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 40 -URI http://asc.fasb.org/extlink&oid=120311839&loc=d3e9031-108599 Reference 3: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 41 -Subparagraph (a) -URI http://asc.fasb.org/extlink&oid=120311839&loc=d3e9038-108599 Reference 4: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 32 -Subparagraph (b) -URI http://asc.fasb.org/extlink&oid=120311839&loc=d3e8933-108599 Reference 5: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 32 -Subparagraph (a) -URI http://asc.fasb.org/extlink&oid=120311839&loc=d3e8933-108599 Reference 6: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 50 -Paragraph 4 -Subparagraph (a) -URI http://asc.fasb.org/extlink&oid=121604090&loc=SL49130543-203045 Reference 7: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 22 -Subparagraph (b) -URI http://asc.fasb.org/extlink&oid=120311839&loc=d3e8736-108599 Reference 8: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 22 -Subparagraph (a) -URI http://asc.fasb.org/extlink&oid=120311839&loc=d3e8736-108599 Reference 9: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 42 -URI http://asc.fasb.org/extlink&oid=120311839&loc=d3e9054-108599 Reference 10: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 50 -Paragraph 5 -URI http://asc.fasb.org/extlink&oid=121604090&loc=SL49130545-203045 Reference 11: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 924 -SubTopic 10 -Section S99 -Paragraph 1 -Subparagraph (SAB Topic 11.L) -URI http://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856 + Details
Name: | us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Details
Name: | srt_MajorCustomersAxis=fix_IndustrialPropertyCustomerMember
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=fix_OfficeBuildingCustomerMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

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

X
- Details
Name: | srt_MajorCustomersAxis=fix_GovernmentCustomerMember
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=us-gaap_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_ServiceProjectsMember
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_MechanicalServicesMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

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