XML 61 R47.htm IDEA: XBRL DOCUMENT
v3.22.4

Fair Value Measurements (Details) $ in Thousands | 12 Months Ended
--- | ---
Dec. 31, 2022 USD ($) employee | Dec. 31, 2021 USD ($) | Dec. 31, 2020 USD ($)
Fair Value Measurements |  |  |
Number of employees covered under life insurance policies | employee | 120 |  |
Combined face value of life insurance policies | $ 82,100 |  |
Reconciliation of the fair value of contingent earn-out obligations that use significant unobservable inputs (Level 3) |  |  |
Fair Value, Liability, Recurring Basis, Unobservable Input Reconciliation, Gain (Loss), Statement of Income or Comprehensive Income [Extensible Enumeration] | Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability | Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability |
Impairment |  |  |
Impairment charges | $ 0 | $ 0 | $ 0
Minimum |  |  |
Fair Value Measurements |  |  |
Weighted average cost of capital | 11.00% |  |
Maximum |  |  |
Fair Value Measurements |  |  |
Weighted average cost of capital | 17.00% |  |
Contingent earn-out obligations |  |  |
Reconciliation of the fair value of contingent earn-out obligations that use significant unobservable inputs (Level 3) |  |  |
Balance at beginning of period | $ 34,114 | 25,979 |
Issuances |  | 19,949 |
Settlements | (6,616) | (3,994) |
Adjustments to fair value | (4,819) | 7,820 |
Balance at end of period | 32,317 | 34,114 | 25,979
Recurring basis | Total |  |  |
Fair Value Measurements |  |  |
Cash and cash equivalents | 57,214 | 58,776 |
Life insurance-cash surrender value | 9,315 | 6,643 |
Contingent earn-out obligations | 32,317 | 34,114 |
Recurring basis | Quoted Market Prices In Active Markets for Identical Assets (Level 1) |  |  |
Fair Value Measurements |  |  |
Cash and cash equivalents | 57,214 | 58,776 |
Recurring basis | Significant Other Observable Inputs (Level 2) |  |  |
Fair Value Measurements |  |  |
Life insurance-cash surrender value | 9,315 | 6,643 |
Recurring basis | Significant Unobservable Inputs (Level 3) |  |  |
Fair Value Measurements |  |  |
Contingent earn-out obligations | 32,317 | 34,114 |
Non recurring basis | Significant Unobservable Inputs (Level 3) |  |  |
Impairment |  |  |
Impairment charges | 0 | 0 | 0
Interest Rate Swap |  |  |
Fair Value Measurements |  |  |
Net gain (loss) | $ 300 | $ (500) | $ (300)

X
- Definition Fair value, as of the balance sheet date, of potential cash payments under the contingent consideration arrangement. + References No definition available. + Details
Name: | fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate
Namespace Prefix: | fix_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition Represents the face amount of life insurance policies taken by the entity for their employees. + References No definition available. + Details
Name: | fix_LifeInsuranceContractsFaceAmount
Namespace Prefix: | fix_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Represents the number of employees covered under life insurance policy contracts. + References No definition available. + Details
Name: | fix_LifeInsuranceContractsNumberOfEmployeesCovered
Namespace Prefix: | fix_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | instant

X
- Definition Percentage of weighted average cost of capital. + References No definition available. + Details
Name: | fix_WeightedAverageCostOfCapital
Namespace Prefix: | fix_
Data Type: | dtr-types:percentItemType
Balance Type: | na
Period Type: | duration

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

X
- Definition Fair value portion of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. + References No definition available. + Details
Name: | us-gaap_CashAndCashEquivalentsFairValueDisclosure
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Fair value portion of the amount that could be realized under a life insurance contract or contracts owned by the entity, commonly known as corporate-owned life insurance (COLI) or bank-owned life insurance (BOLI). + References No definition available. + Details
Name: | us-gaap_CashSurrenderValueFairValueDisclosure
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Amount of increase (decrease) in the fair value of derivatives recognized in the income statement. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Publisher FASB -Name Accounting Standards Codification -Topic 815 -SubTopic 10 -Section 50 -Paragraph 4A -Subparagraph (b)(1) -URI https://asc.fasb.org/extlink&oid=125515794&loc=SL5618551-113959 + Details
Name: | us-gaap_DerivativeGainLossOnDerivativeNet
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 No definition available. + Details
Name: | us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period. + References No definition available. + Details
Name: | us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount of gain (loss) recognized in income from liability measured at fair value on recurring basis using unobservable input (level 3). + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 820 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(1) -URI https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258 + Details
Name: | us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Amount of issuances of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 820 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(2) -URI https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258 + Details
Name: | us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Amount of settlements of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 820 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(2) -URI https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258 + Details
Name: | us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition Fair value of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 820 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c) -URI https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258 + Details
Name: | us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition Indicates line item in statement in which net income is reported that includes gain (loss) from liability measured at fair value using unobservable input (level 3). + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 820 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(1) -URI https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258 + Details
Name: | us-gaap_FairValueRecurringBasisUnobservableInputReconciliationLiabilityGainLossStatementOfIncomeExtensibleList
Namespace Prefix: | us-gaap_
Data Type: | enum2:enumerationSetItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount of loss from the write-down of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 350 -SubTopic 20 -Section 50 -Paragraph 2 -Subparagraph (b) -URI https://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 230 -SubTopic 10 -Section 45 -Paragraph 28 -Subparagraph (b) -URI https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585 Reference 3: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 350 -SubTopic 20 -Section 45 -Paragraph 2 -URI https://asc.fasb.org/extlink&oid=99380562&loc=d3e13777-109266 Reference 4: http://www.xbrl.org/2003/role/exampleRef -Publisher FASB -Name Accounting Standards Codification -Topic 350 -SubTopic 20 -Section 55 -Paragraph 24 -URI https://asc.fasb.org/extlink&oid=122137925&loc=d3e14258-109268 Reference 5: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 350 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (e) -URI https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267 + Details
Name: | us-gaap_GoodwillImpairmentLoss
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

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_FairValueByLiabilityClassAxis=fix_ContingentConsiderationObligationsMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FairValueByMeasurementBasisAxis=us-gaap_EstimateOfFairValueFairValueDisclosureMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsNonrecurringMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_DerivativeInstrumentRiskAxis=us-gaap_InterestRateSwapMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |