XML 65 R50.htm IDEA: XBRL DOCUMENT
v3.24.0.1

Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details) - USD ($) $ in Thousands | 12 Months Ended
--- | ---
Dec. 31, 2023 | Dec. 31, 2022
Identifiable Intangible Assets, Net |  |
Finite-lived intangible assets acquired | $ 49,900 | $ 16,900
Estimated Useful Life | 10 years 2 months 12 days | 10 years 9 months 18 days
Gross Book Value | $ 512,182 | $ 465,482
Accumulated Amortization | (231,785) | (191,581)
Future amortization expense of identifiable intangible assets |  |
2024 | 39,851 |
2025 | 36,095 |
2026 | 35,251 |
2027 | 33,269 |
2028 | 33,109 |
Thereafter | 102,822 |
Total | $ 280,397 |
Customer Relationships |  |
Identifiable Intangible Assets, Net |  |
Estimated Useful Lives in Years | 6 years 4 months 24 days |
Gross Book Value | $ 376,621 | 340,721
Accumulated Amortization | $ (193,338) | (161,049)
Customer Relationships | Minimum |  |
Identifiable Intangible Assets, Net |  |
Estimated Useful Lives in Years | 6 years 4 months 24 days |
Backlog |  |
Identifiable Intangible Assets, Net |  |
Estimated Useful Lives in Years | 7 months 6 days |
Gross Book Value | $ 5,900 | 3,200
Accumulated Amortization | $ (4,331) | (2,361)
Backlog | Minimum |  |
Identifiable Intangible Assets, Net |  |
Estimated Useful Lives in Years | 7 months 6 days |
Trade Names [Member] |  |
Identifiable Intangible Assets, Net |  |
Estimated Useful Lives in Years | 17 years 7 months 6 days |
Gross Book Value | $ 129,661 | 121,561
Accumulated Amortization | $ (34,116) | $ (28,171)
Trade Names [Member] | Minimum |  |
Identifiable Intangible Assets, Net |  |
Estimated Useful Lives in Years | 17 years 7 months 6 days |
Customer Relationships Noncompete Agreements and Tradenames | Minimum |  |
Identifiable Intangible Assets, Net |  |
Estimated Useful Lives in Years | 1 year |
Customer Relationships Noncompete Agreements and Tradenames | Maximum |  |
Identifiable Intangible Assets, Net |  |
Estimated Useful Lives in Years | 25 years |

X
- Definition Weighted average amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 350 -SubTopic 30 -Name Accounting Standards Codification -Section 50 -Paragraph 1 -Subparagraph (a)(3) -Publisher FASB -URI https://asc.fasb.org//1943274/2147482665/350-30-50-1 + Details
Name: | us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
Namespace Prefix: | us-gaap_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Definition Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. + References No definition available. + Details
Name: | us-gaap_FiniteLivedIntangibleAssetUsefulLife
Namespace Prefix: | us-gaap_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | instant

X
- Definition Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 210 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 1 -Subparagraph (SX 210.5-02(16)) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 350 -SubTopic 30 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (a)(1) -Publisher FASB -URI https://asc.fasb.org//1943274/2147482665/350-30-50-2 + Details
Name: | us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach). + References No definition available. + Details
Name: | us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach). + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 350 -SubTopic 30 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (a)(3) -Publisher FASB -URI https://asc.fasb.org//1943274/2147482665/350-30-50-2 + Details
Name: | us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach). + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 350 -SubTopic 30 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (a)(3) -Publisher FASB -URI https://asc.fasb.org//1943274/2147482665/350-30-50-2 + Details
Name: | us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach). + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 350 -SubTopic 30 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (a)(3) -Publisher FASB -URI https://asc.fasb.org//1943274/2147482665/350-30-50-2 + Details
Name: | us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach). + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 350 -SubTopic 30 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (a)(3) -Publisher FASB -URI https://asc.fasb.org//1943274/2147482665/350-30-50-2 + Details
Name: | us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach). + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 350 -SubTopic 30 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (a)(3) -Publisher FASB -URI https://asc.fasb.org//1943274/2147482665/350-30-50-2 + Details
Name: | us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- References No definition available. + Details
Name: | us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 928 -SubTopic 340 -Name Accounting Standards Codification -Section 50 -Paragraph 1 -Publisher FASB -URI https://asc.fasb.org//1943274/2147483147/928-340-50-1 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 350 -SubTopic 30 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (a)(1) -Publisher FASB -URI https://asc.fasb.org//1943274/2147482665/350-30-50-2 + Details
Name: | us-gaap_FiniteLivedIntangibleAssetsGross
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

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 Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 926 -SubTopic 20 -Name Accounting Standards Codification -Section 50 -Paragraph 5 -Publisher FASB -URI https://asc.fasb.org//1943274/2147483154/926-20-50-5 + Details
Name: | us-gaap_FiniteLivedIntangibleAssetsLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 926 -SubTopic 20 -Name Accounting Standards Codification -Section 50 -Paragraph 5 -Publisher FASB -URI https://asc.fasb.org//1943274/2147483154/926-20-50-5 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 350 -SubTopic 30 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (a)(1) -Publisher FASB -URI https://asc.fasb.org//1943274/2147482665/350-30-50-2 + Details
Name: | us-gaap_FiniteLivedIntangibleAssetsNet
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Amount of increase in assets, excluding financial assets, lacking physical substance with a definite life, from an acquisition. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 350 -SubTopic 30 -Name Accounting Standards Codification -Section 50 -Paragraph 1 -Subparagraph (a)(1) -Publisher FASB -URI https://asc.fasb.org//1943274/2147482665/350-30-50-1 + Details
Name: | us-gaap_FinitelivedIntangibleAssetsAcquired1
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Details
Name: | us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember
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: | us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_OrderOrProductionBacklogMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember
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: |