XML 42 R32.htm IDEA: XBRL DOCUMENT
v3.22.1

Fair Value Measurements (Details) $ in Thousands | 3 Months Ended | 12 Months Ended
--- | --- | ---
Mar. 31, 2022 USD ($) employee | Mar. 31, 2021 USD ($) | Dec. 31, 2021 USD ($)
Fair Value Measurements |  |  |
Number of employees covered under life insurance policies | employee | 109 |  |
Combined face value of life insurance policies | $ 74,700 |  |
Cash surrender value | $ 6,400 |  | $ 6,600
Minimum |  |  |
Fair Value Measurements |  |  |
Weighted average cost of capital | 10.50% |  |
Maximum |  |  |
Fair Value Measurements |  |  |
Weighted average cost of capital | 16.50% |  |
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 | 25,979
Issuances |  |  | 19,949
Settlements | (1,751) |  | (3,994)
Adjustments to fair value | (4,088) |  | (7,820)
Balance at end of period | 28,275 |  | 34,114
Recurring basis | Total |  |  |
Fair Value Measurements |  |  |
Cash and cash equivalents | 115,615 |  | 58,776
Life insurance-cash surrender value | 6,358 |  | 6,643
Contingent earn-out obligations | 28,275 |  | 34,114
Recurring basis | Quoted Market Prices In Active Markets for Identical Assets (Level 1) |  |  |
Fair Value Measurements |  |  |
Cash and cash equivalents | 115,615 |  | 58,776
Recurring basis | Significant Other Observable Inputs (Level 2) |  |  |
Fair Value Measurements |  |  |
Life insurance-cash surrender value | 6,358 |  | 6,643
Recurring basis | Significant Unobservable Inputs (Level 3) |  |  |
Fair Value Measurements |  |  |
Contingent earn-out obligations | 28,275 |  | $ 34,114
Interest Rate Swap |  |  |
Fair Value Measurements |  |  |
Net loss on derivative | 100 | $ 100 |
Interest Rate Swap | Not Designated as Hedging Instrument, Economic Hedge [Member] |  |  |
Fair Value Measurements |  |  |
Notional amount | $ 80,000 |  |

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 Derivative instrument notional amount. + References No definition available. + Details
Name: | fix_DerivativeInstrumentNotionalAmount
Namespace Prefix: | fix_
Data Type: | xbrli:monetaryItemType
Balance Type: | na
Period Type: | instant

X
- Definition Amount of net loss recognized on derivative. + References No definition available. + Details
Name: | fix_DerivativeNetLossOnDerivative
Namespace Prefix: | fix_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

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
- 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 Carrying amount as of the balance sheet date of amounts which could be received based on the terms of the insurance contract upon surrendering life policies owned by the entity. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 210 -SubTopic 10 -Section 45 -Paragraph 4 -Subparagraph (d) -URI http://asc.fasb.org/extlink&oid=124098289&loc=d3e6812-107765 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 210 -SubTopic 10 -Section S99 -Paragraph 1 -Subparagraph (SX 210.5-02.17) -URI http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682 + Details
Name: | us-gaap_CashSurrenderValueOfLifeInsurance
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 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 http://asc.fasb.org/extlink&oid=123874694&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 http://asc.fasb.org/extlink&oid=123874694&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 http://asc.fasb.org/extlink&oid=123874694&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 http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258 + Details
Name: | us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

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_DerivativeInstrumentRiskAxis=us-gaap_InterestRateSwapMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_HedgingDesignationAxis=us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |