XML 82 R67.htm IDEA: XBRL DOCUMENT
v3.24.0.1

Commitments and Contingencies - Other and Bonds (Details) - USD ($) $ in Millions | 3 Months Ended | 12 Months Ended
--- | --- | ---
Mar. 31, 2023 | Dec. 31, 2023 | Dec. 31, 2022
Commitments and Contingencies |  |  |
Gain (loss) related to settlement agreements |  |  | $ 5.1
Dispute With Customer |  |  |
Commitments and Contingencies |  |  |
Gain (loss) related to settlement agreements | $ 6.8 |  |
Surety | Minimum |  |  |
Surety |  |  |
Percentage of business which has required bonds |  | 10.00% |
Surety | Maximum |  |  |
Surety |  |  |
Percentage of business which has required bonds |  | 20.00% |
Gross Profit. | Dispute With Customer |  |  |
Commitments and Contingencies |  |  |
Gain (loss) related to settlement agreements | 6.6 |  |
Selling, General and Administrative Expenses | Dispute With Customer |  |  |
Commitments and Contingencies |  |  |
Gain (loss) related to settlement agreements | 0.7 |  |
Interest Income | Dispute With Customer |  |  |
Commitments and Contingencies |  |  |
Gain (loss) related to settlement agreements | 1.3 |  |
Change in Fair Value of Contingent Earn-Out Obligations | Dispute With Customer |  |  |
Commitments and Contingencies |  |  |
Gain (loss) related to settlement agreements | $ 1.8 |  |

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

X
- Definition Represents the percentage of business which has required bonds. + References No definition available. + Details
Name: | fix_PercentageOfBusinessWhichHasRequiredBonds
Namespace Prefix: | fix_
Data Type: | dtr-types:percentItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount of gain (loss) recognized in settlement of litigation and insurance claims. Excludes claims within an insurance entity's normal claims settlement process. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 450 -SubTopic 20 -Name Accounting Standards Codification -Section 50 -Paragraph 1 -Publisher FASB -URI https://asc.fasb.org//1943274/2147483076/450-20-50-1 + Details
Name: | us-gaap_GainLossRelatedToLitigationSettlement
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
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 Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 460 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 3 -Publisher FASB -URI https://asc.fasb.org//1943274/2147482425/460-10-50-3 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 450 -SubTopic 20 -Name Accounting Standards Codification -Section 50 -Paragraph 1 -Publisher FASB -URI https://asc.fasb.org//1943274/2147483076/450-20-50-1 Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 450 -SubTopic 20 -Name Accounting Standards Codification -Section 50 -Paragraph 4 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org//1943274/2147483076/450-20-50-4 Reference 4: http://www.xbrl.org/2003/role/disclosureRef -Topic 450 -SubTopic 20 -Name Accounting Standards Codification -Section 50 -Paragraph 4 -Subparagraph (b) -Publisher FASB -URI https://asc.fasb.org//1943274/2147483076/450-20-50-4 Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 450 -SubTopic 20 -Name Accounting Standards Codification -Section 50 -Paragraph 9 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org//1943274/2147483076/450-20-50-9 Reference 6: http://www.xbrl.org/2003/role/disclosureRef -Topic 450 -SubTopic 20 -Name Accounting Standards Codification -Section 50 -Paragraph 9 -Subparagraph (b) -Publisher FASB -URI https://asc.fasb.org//1943274/2147483076/450-20-50-9 + Details
Name: | us-gaap_LossContingenciesLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Details
Name: | us-gaap_LossContingenciesByNatureOfContingencyAxis=fix_DisputeWithCustomerMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_LossContingenciesByNatureOfContingencyAxis=us-gaap_SuretyBondMember
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: |

X
- Details
Name: | us-gaap_IncomeStatementLocationAxis=fix_GrossProfitMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_IncomeStatementLocationAxis=us-gaap_InterestIncomeMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_IncomeStatementLocationAxis=fix_BusinessCombinationContingentConsiderationChangeInContingentConsiderationLiabilityMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |