2020 Q4 Form 10-K Financial Statement

#000155837021001828 Filed on February 25, 2021

View on sec.gov

Income Statement

Concept 2020 Q4 2019 Q4 2019 Q3
Revenue $699.0M $719.6M $706.9M
YoY Change -2.87% 22.3% 18.9%
Cost Of Revenue $562.0M $587.0M $564.2M
YoY Change -4.26% 24.84% 20.9%
Gross Profit $137.0M $132.6M $142.7M
YoY Change 3.35% 12.17% 11.6%
Gross Profit Margin 19.6% 18.42% 20.19%
Selling, General & Admin $82.00M $80.50M $90.01M
YoY Change 1.86% 6.62% 19.53%
% of Gross Profit 59.85% 60.73% 63.07%
Research & Development
YoY Change
% of Gross Profit
Depreciation & Amortization $14.50M $13.20M $13.40M
YoY Change 9.85% 10.0% 22.94%
% of Gross Profit 10.58% 9.96% 9.39%
Operating Expenses $88.90M $86.60M $90.01M
YoY Change 2.66% 7.71% 19.53%
Operating Profit $48.10M $45.96M $53.40M
YoY Change 4.65% 21.67% 1.16%
Interest Expense $5.800M -$1.400M $2.779M
YoY Change -514.29% -61.11% 141.23%
% of Operating Profit 12.06% -3.05% 5.2%
Other Income/Expense, Net $0.00 $0.00 -$4.698M
YoY Change -100.0% 618.35%
Pretax Income $54.10M $45.10M $48.71M
YoY Change 19.96% 30.72% -6.58%
Income Tax $11.30M $11.10M $12.47M
% Of Pretax Income 20.89% 24.61% 25.61%
Net Earnings $42.84M $34.05M $36.23M
YoY Change 25.81% 35.36% -5.99%
Net Earnings / Revenue 6.13% 4.73% 5.13%
Basic Earnings Per Share $1.18 $0.93 $0.98
Diluted Earnings Per Share $1.17 $0.92 $0.98
COMMON SHARES
Basic Shares Outstanding 36.39M 36.68M 36.81M
Diluted Shares Outstanding 37.05M

Balance Sheet

Concept 2020 Q4 2019 Q4 2019 Q3
SHORT-TERM ASSETS
Cash & Short-Term Investments $54.90M $50.80M $40.40M
YoY Change 8.07% 11.4% 110.42%
Cash & Equivalents $54.90M $50.79M $40.36M
Short-Term Investments
Other Short-Term Assets $15.50M $14.40M $8.800M
YoY Change 7.64% 121.54% 39.68%
Inventory $13.47M $10.05M $12.67M
Prepaid Expenses
Receivables $683.8M $677.3M $663.1M
Other Receivables $44.20M $37.60M $25.50M
Total Short-Term Assets $811.9M $790.2M $750.4M
YoY Change 2.74% 29.6% 25.13%
LONG-TERM ASSETS
Property, Plant & Equipment $117.2M $109.8M $108.1M
YoY Change 6.75% 10.22% 4.98%
Goodwill $464.4M $332.4M $332.2M
YoY Change 39.69% 41.36%
Intangibles $231.8M $160.0M $166.7M
YoY Change 44.9% 67.91%
Long-Term Investments
YoY Change
Other Assets $7.970M $6.615M $5.458M
YoY Change 20.48% 28.32% -80.08%
Total Long-Term Assets $945.5M $714.8M $717.1M
YoY Change 32.27% 57.85% 55.81%
TOTAL ASSETS
Total Short-Term Assets $811.9M $790.2M $750.4M
Total Long-Term Assets $945.5M $714.8M $717.1M
Total Assets $1.757B $1.505B $1.467B
YoY Change 16.77% 41.64% 38.45%
SHORT-TERM LIABILITIES
YoY Change
Accounts Payable $204.1M $196.2M $176.6M
YoY Change 4.05% 11.37% 17.05%
Accrued Expenses $187.6M $156.5M $154.7M
YoY Change 19.87% 26.41% 34.06%
Deferred Revenue $226.2M $166.9M $167.1M
YoY Change 35.54% 27.43%
Short-Term Debt $0.00 $0.00 $0.00
YoY Change
Long-Term Debt Due $20.82M $13.85M
YoY Change 534.86% 319.61%
Total Short-Term Liabilities $692.9M $608.0M $577.7M
YoY Change 13.97% 30.18% 29.59%
LONG-TERM LIABILITIES
Long-Term Debt $235.7M $205.3M $228.2M
YoY Change 14.81% 178.82% 143.51%
Other Long-Term Liabilities $50.37M $32.27M $29.33M
YoY Change 56.1% 43.86% 28.64%
Total Long-Term Liabilities $286.1M $237.6M $257.5M
YoY Change 20.42% 147.3% 121.03%
TOTAL LIABILITIES
Total Short-Term Liabilities $692.9M $608.0M $577.7M
Total Long-Term Liabilities $286.1M $237.6M $257.5M
Total Liabilities $1.061B $919.7M $909.8M
YoY Change 15.35% 62.92% 60.41%
SHAREHOLDERS EQUITY
Retained Earnings $502.8M $368.7M $338.3M
YoY Change 36.38% 37.11%
Common Stock $322.9M $320.6M $320.6M
YoY Change 0.71% 1.16%
Preferred Stock
YoY Change
Treasury Stock (at cost) $129.2M $104.0M $101.2M
YoY Change 24.32% 18.48%
Treasury Stock Shares $4.935M $4.465M $4.447M
Shareholders Equity $696.4M $585.3M $557.6M
YoY Change
Total Liabilities & Shareholders Equity $1.757B $1.505B $1.467B
YoY Change 16.77% 41.64% 38.45%

Cashflow Statement

Concept 2020 Q4 2019 Q4 2019 Q3
OPERATING ACTIVITIES
Net Income $42.84M $34.05M $36.23M
YoY Change 25.81% 35.36% -5.99%
Depreciation, Depletion And Amortization $14.50M $13.20M $13.40M
YoY Change 9.85% 10.0% 22.94%
Cash From Operating Activities $70.10M $42.30M $73.10M
YoY Change 65.72% -46.59% 139.67%
INVESTING ACTIVITIES
Capital Expenditures -$4.600M -$9.200M -$6.900M
YoY Change -50.0% 76.92% -13.75%
Acquisitions
YoY Change
Other Investing Activities -$72.60M $700.0K $2.300M
YoY Change -10471.43% -116.67% -104.49%
Cash From Investing Activities -$77.30M -$8.400M -$4.800M
YoY Change 820.24% -10.64% -91.89%
FINANCING ACTIVITIES
Cash Dividend Paid
YoY Change
Common Stock Issuance & Retirement, Net
YoY Change
Debt Paid & Issued, Net
YoY Change
Cash From Financing Activities -8.500M -23.50M -64.80M
YoY Change -63.83% -45.85% -425.63%
NET CHANGE
Cash From Operating Activities 70.10M 42.30M 73.10M
Cash From Investing Activities -77.30M -8.400M -4.800M
Cash From Financing Activities -8.500M -23.50M -64.80M
Net Change In Cash -15.70M 10.40M 3.500M
YoY Change -250.96% -60.61% -139.77%
FREE CASH FLOW
Cash From Operating Activities $70.10M $42.30M $73.10M
Capital Expenditures -$4.600M -$9.200M -$6.900M
Free Cash Flow $74.70M $51.50M $80.00M
YoY Change 45.05% -38.98% 107.79%

Facts In Submission

Frame Concept Type Concept / XBRL Key Value Unit
CY2020Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2019Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2020Q4 us-gaap Preferred Stock Value
PreferredStockValue
CY2019Q4 us-gaap Preferred Stock Value
PreferredStockValue
CY2019 us-gaap Unrecognized Tax Benefits Decreases Resulting From Settlements With Taxing Authorities
UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
CY2018 us-gaap Unrecognized Tax Benefits Decreases Resulting From Settlements With Taxing Authorities
UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
CY2020 us-gaap Revenue Practical Expedient Remaining Performance Obligation
RevenuePracticalExpedientRemainingPerformanceObligation
true
CY2019Q4 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2020Q4 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2020 dei Entity Central Index Key
EntityCentralIndexKey
0001035983
CY2020 dei Current Fiscal Year End Date
CurrentFiscalYearEndDate
--12-31
CY2020 dei Document Fiscal Year Focus
DocumentFiscalYearFocus
2020
CY2020 dei Document Fiscal Period Focus
DocumentFiscalPeriodFocus
FY
CY2020 dei Amendment Flag
AmendmentFlag
false
CY2019Q4 us-gaap Operating Lease Liability Current Statement Of Financial Position Extensible List
OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList
us-gaap:OperatingLeaseLiabilityCurrent
CY2020Q4 us-gaap Operating Lease Liability Current Statement Of Financial Position Extensible List
OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList
us-gaap:OperatingLeaseLiabilityCurrent
CY2019Q4 us-gaap Operating Lease Liability Statement Of Financial Position Extensible List
OperatingLeaseLiabilityStatementOfFinancialPositionExtensibleList
us-gaap:OperatingLeaseLiabilityNoncurrent
CY2020Q4 us-gaap Operating Lease Liability Statement Of Financial Position Extensible List
OperatingLeaseLiabilityStatementOfFinancialPositionExtensibleList
us-gaap:OperatingLeaseLiabilityNoncurrent
CY2019Q4 fix Gain Recorded As Reduction In Cost Of Services Expense
GainRecordedAsReductionInCostOfServicesExpense
3200000
CY2020 dei Document Type
DocumentType
10-K
CY2020 dei Document Annual Report
DocumentAnnualReport
true
CY2020 dei Document Period End Date
DocumentPeriodEndDate
2020-12-31
CY2020 dei Document Transition Report
DocumentTransitionReport
false
CY2020 dei Entity File Number
EntityFileNumber
1-13011
CY2020 dei Entity Registrant Name
EntityRegistrantName
Comfort Systems USA, Inc.
CY2020 dei Entity Incorporation State Country Code
EntityIncorporationStateCountryCode
DE
CY2020 dei Entity Tax Identification Number
EntityTaxIdentificationNumber
76-0526487
CY2020 dei Entity Address Address Line1
EntityAddressAddressLine1
675 Bering Drive
CY2020 dei Entity Address Address Line2
EntityAddressAddressLine2
Suite 400
CY2020 dei Entity Address City Or Town
EntityAddressCityOrTown
Houston
CY2020 dei Entity Address State Or Province
EntityAddressStateOrProvince
TX
CY2020 dei Entity Address Postal Zip Code
EntityAddressPostalZipCode
77057
CY2020 dei City Area Code
CityAreaCode
713
CY2020 dei Local Phone Number
LocalPhoneNumber
830-9600
CY2020 dei Security12b Title
Security12bTitle
Common Stock, $.01 par value
CY2020 dei Trading Symbol
TradingSymbol
FIX
CY2020 dei Security Exchange Name
SecurityExchangeName
NYSE
CY2020 dei Entity Well Known Seasoned Issuer
EntityWellKnownSeasonedIssuer
Yes
CY2020 dei Entity Voluntary Filers
EntityVoluntaryFilers
No
CY2020 dei Entity Current Reporting Status
EntityCurrentReportingStatus
Yes
CY2020 dei Entity Interactive Data Current
EntityInteractiveDataCurrent
Yes
CY2020 dei Entity Filer Category
EntityFilerCategory
Large Accelerated Filer
CY2020 dei Entity Small Business
EntitySmallBusiness
false
CY2020 dei Entity Emerging Growth Company
EntityEmergingGrowthCompany
false
CY2020 dei Icfr Auditor Attestation Flag
IcfrAuditorAttestationFlag
true
CY2020 dei Entity Shell Company
EntityShellCompany
false
CY2020Q2 dei Entity Public Float
EntityPublicFloat
1450000000
CY2021Q1 dei Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
36185179
CY2020Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
54896000
CY2019Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
50788000
CY2020Q4 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
9087000
CY2019Q4 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
6907000
CY2020Q4 us-gaap Assets Current
AssetsCurrent
811852000
CY2019Q4 us-gaap Assets Current
AssetsCurrent
790184000
CY2019Q4 us-gaap Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
2736000
CY2020Q4 us-gaap Billed Contract Receivables
BilledContractReceivables
619544000
CY2019Q4 us-gaap Billed Contract Receivables
BilledContractReceivables
619037000
CY2020Q4 fix Unbilled Accounts Receivable Allowance For Credit Loss
UnbilledAccountsReceivableAllowanceForCreditLoss
784000
CY2019Q4 fix Unbilled Accounts Receivable Allowance For Credit Loss
UnbilledAccountsReceivableAllowanceForCreditLoss
0
CY2020Q4 us-gaap Unbilled Contracts Receivable
UnbilledContractsReceivable
45596000
CY2019Q4 us-gaap Unbilled Contracts Receivable
UnbilledContractsReceivable
55542000
CY2020Q4 us-gaap Allowance For Doubtful Other Receivables Current
AllowanceForDoubtfulOtherReceivablesCurrent
759000
CY2019Q4 us-gaap Allowance For Doubtful Other Receivables Current
AllowanceForDoubtfulOtherReceivablesCurrent
0
CY2020Q4 us-gaap Nontrade Receivables Current
NontradeReceivablesCurrent
44212000
CY2019Q4 us-gaap Nontrade Receivables Current
NontradeReceivablesCurrent
37632000
CY2020Q4 us-gaap Inventory Net
InventoryNet
13472000
CY2019Q4 us-gaap Inventory Net
InventoryNet
10053000
CY2020Q4 us-gaap Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
15510000
CY2019Q4 us-gaap Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
14396000
CY2020Q4 fix Costs In Excess Of Billings Allowance For Credit Losses
CostsInExcessOfBillingsAllowanceForCreditLosses
79000
CY2019Q4 fix Costs In Excess Of Billings Allowance For Credit Losses
CostsInExcessOfBillingsAllowanceForCreditLosses
0
CY2020Q4 us-gaap Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
18622000
CY2020Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
117206000
CY2019Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
109796000
CY2020Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
94727000
CY2019Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
84073000
CY2020Q4 us-gaap Goodwill
Goodwill
464392000
CY2019Q4 us-gaap Goodwill
Goodwill
332447000
CY2020Q4 us-gaap Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
231807000
CY2019Q4 us-gaap Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
159974000
CY2020Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
29401000
CY2019Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
21923000
CY2020Q4 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
7970000
CY2019Q4 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
6615000
CY2020Q4 us-gaap Assets
Assets
1757355000
CY2019Q4 us-gaap Assets
Assets
1505012000
CY2019Q4 us-gaap Long Term Debt Current
LongTermDebtCurrent
20817000
CY2020Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
204145000
CY2019Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
196195000
CY2020Q4 us-gaap Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
121864000
CY2019Q4 us-gaap Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
102891000
CY2020Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
226237000
CY2019Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
166918000
CY2020Q4 us-gaap Self Insurance Reserve Current
SelfInsuranceReserveCurrent
49166000
CY2019Q4 us-gaap Self Insurance Reserve Current
SelfInsuranceReserveCurrent
39546000
CY2020Q4 us-gaap Other Liabilities Current
OtherLiabilitiesCurrent
91492000
CY2019Q4 us-gaap Other Liabilities Current
OtherLiabilitiesCurrent
81630000
CY2020Q4 us-gaap Liabilities Current
LiabilitiesCurrent
692904000
CY2019Q4 us-gaap Liabilities Current
LiabilitiesCurrent
607997000
CY2020Q4 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
235733000
CY2019Q4 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
205318000
CY2020Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
80576000
CY2019Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
72697000
CY2020Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
1339000
CY2019Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
1425000
CY2020Q4 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
50374000
CY2019Q4 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
32271000
CY2020Q4 us-gaap Liabilities
Liabilities
1060926000
CY2019Q4 us-gaap Liabilities
Liabilities
919708000
CY2019Q4 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.01
CY2020Q4 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.01
CY2019Q4 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
5000000
CY2020Q4 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
5000000
CY2019Q4 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2020Q4 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2019Q4 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.01
CY2020Q4 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.01
CY2019Q4 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
102969912
CY2020Q4 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
102969912
CY2020Q4 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
41123365
CY2019Q4 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
41123365
CY2020Q4 us-gaap Common Stock Value
CommonStockValue
411000
CY2019Q4 us-gaap Common Stock Value
CommonStockValue
411000
CY2020Q4 us-gaap Treasury Stock Shares
TreasuryStockShares
4935186
CY2019Q4 us-gaap Treasury Stock Shares
TreasuryStockShares
4465448
CY2020Q4 us-gaap Treasury Stock Value
TreasuryStockValue
129243000
CY2019Q4 us-gaap Treasury Stock Value
TreasuryStockValue
103960000
CY2020Q4 us-gaap Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
322451000
CY2019Q4 us-gaap Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
320168000
CY2020Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
502810000
CY2019Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
368685000
CY2020Q4 us-gaap Stockholders Equity
StockholdersEquity
696429000
CY2019Q4 us-gaap Stockholders Equity
StockholdersEquity
585304000
CY2020Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
1757355000
CY2019Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
1505012000
CY2020 us-gaap Revenues
Revenues
2856659000
CY2019 us-gaap Revenues
Revenues
2615277000
CY2018 us-gaap Revenues
Revenues
2182879000
CY2020 us-gaap Cost Of Revenue
CostOfRevenue
2309676000
CY2019 us-gaap Cost Of Revenue
CostOfRevenue
2113334000
CY2018 us-gaap Cost Of Revenue
CostOfRevenue
1736600000
CY2020 us-gaap Gross Profit
GrossProfit
546983000
CY2019 us-gaap Gross Profit
GrossProfit
501943000
CY2018 us-gaap Gross Profit
GrossProfit
446279000
CY2020 us-gaap Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
357777000
CY2019 us-gaap Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
340005000
CY2018 us-gaap Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
296986000
CY2020 us-gaap Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
1445000
CY2019 us-gaap Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
1701000
CY2018 us-gaap Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
945000
CY2020 us-gaap Operating Income Loss
OperatingIncomeLoss
190651000
CY2019 us-gaap Operating Income Loss
OperatingIncomeLoss
163639000
CY2018 us-gaap Operating Income Loss
OperatingIncomeLoss
150238000
CY2020 us-gaap Investment Income Interest
InvestmentIncomeInterest
103000
CY2019 us-gaap Investment Income Interest
InvestmentIncomeInterest
224000
CY2018 us-gaap Investment Income Interest
InvestmentIncomeInterest
73000
CY2020 us-gaap Interest Expense
InterestExpense
8385000
CY2019 us-gaap Interest Expense
InterestExpense
9317000
CY2018 us-gaap Interest Expense
InterestExpense
3710000
CY2020 us-gaap Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
-9119000
CY2019 us-gaap Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
2991000
CY2018 us-gaap Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
2066000
CY2020 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
52000
CY2019 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
187000
CY2018 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
4141000
CY2020 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
889000
CY2019 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-11897000
CY2018 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-1562000
CY2020 us-gaap Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
191540000
CY2019 us-gaap Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
151742000
CY2018 us-gaap Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
148676000
CY2020 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
41401000
CY2019 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
37418000
CY2018 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
35773000
CY2020 us-gaap Net Income Loss
NetIncomeLoss
150139000
CY2019 us-gaap Net Income Loss
NetIncomeLoss
114324000
CY2018 us-gaap Net Income Loss
NetIncomeLoss
112903000
CY2020 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
4.11
CY2019 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
3.10
CY2018 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
3.03
CY2020 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
4.09
CY2019 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
3.08
CY2018 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
3.00
CY2020 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
36542000
CY2019 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
36854000
CY2018 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
37202000
CY2020 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
36738000
CY2019 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
37131000
CY2018 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
37592000
CY2020 us-gaap Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
0.425
CY2019 us-gaap Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
0.395
CY2018 us-gaap Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
0.330
CY2017Q4 us-gaap Stockholders Equity
StockholdersEquity
417945000
CY2018 us-gaap Profit Loss
ProfitLoss
112903000
CY2018 us-gaap Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
3105000
CY2018 fix Stock Issued During Period Value Restricted And Performance Stock Award Gross
StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross
2223000
CY2018 us-gaap Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
1540000
CY2018 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
4212000
CY2018 us-gaap Dividends Common Stock Cash
DividendsCommonStockCash
12268000
CY2018 us-gaap Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
28533000
CY2018Q4 us-gaap Stockholders Equity
StockholdersEquity
498047000
CY2019 us-gaap Profit Loss
ProfitLoss
114324000
CY2019 us-gaap Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
2350000
CY2019 fix Stock Issued During Period Value Restricted And Performance Stock Award Gross
StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross
2006000
CY2019 us-gaap Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
1498000
CY2019 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
4168000
CY2020 us-gaap Dividends Common Stock Cash
DividendsCommonStockCash
15499000
CY2019 us-gaap Dividends Common Stock Cash
DividendsCommonStockCash
14543000
CY2019 us-gaap Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
19550000
CY2019Q4 us-gaap Stockholders Equity
StockholdersEquity
585304000
CY2020 us-gaap Profit Loss
ProfitLoss
150139000
CY2020 us-gaap Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
2144000
CY2020 fix Stock Issued During Period Value Restricted And Performance Stock Award Gross
StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross
1855000
CY2020 us-gaap Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
1076000
CY2020 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
4197000
CY2020 us-gaap Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
30120000
CY2020Q4 us-gaap Stockholders Equity
StockholdersEquity
696429000
CY2020 us-gaap Profit Loss
ProfitLoss
150139000
CY2019 us-gaap Profit Loss
ProfitLoss
114324000
CY2018 us-gaap Profit Loss
ProfitLoss
112903000
CY2020 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
32698000
CY2019 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
27082000
CY2018 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
20089000
CY2020 us-gaap Depreciation
Depreciation
27931000
CY2019 us-gaap Depreciation
Depreciation
24490000
CY2018 us-gaap Depreciation
Depreciation
22600000
CY2020 fix Change In Right Of Use Assets
ChangeInRightOfUseAssets
16692000
CY2019 fix Change In Right Of Use Assets
ChangeInRightOfUseAssets
16887000
CY2020 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
5253000
CY2019 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
2978000
CY2018 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
3562000
CY2020 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
-7953000
CY2019 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
-4251000
CY2018 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
4456000
CY2020 us-gaap Amortization Of Financing Costs
AmortizationOfFinancingCosts
544000
CY2019 us-gaap Amortization Of Financing Costs
AmortizationOfFinancingCosts
387000
CY2018 us-gaap Amortization Of Financing Costs
AmortizationOfFinancingCosts
383000
CY2020 us-gaap Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
1445000
CY2019 us-gaap Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
1701000
CY2018 us-gaap Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
945000
CY2020 us-gaap Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
-9119000
CY2019 us-gaap Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
2991000
CY2018 us-gaap Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
2066000
CY2020 us-gaap Share Based Compensation
ShareBasedCompensation
6934000
CY2019 us-gaap Share Based Compensation
ShareBasedCompensation
5878000
CY2018 us-gaap Share Based Compensation
ShareBasedCompensation
7161000
CY2020 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
-38486000
CY2019 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
49508000
CY2018 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
68621000
CY2020 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
1457000
CY2019 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
-2366000
CY2018 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
1538000
CY2020 us-gaap Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
4855000
CY2019 us-gaap Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
15519000
CY2018 us-gaap Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
-519000
CY2020 us-gaap Increase Decrease In Contract With Customer Asset
IncreaseDecreaseInContractWithCustomerAsset
-2706000
CY2019 us-gaap Increase Decrease In Contract With Customer Asset
IncreaseDecreaseInContractWithCustomerAsset
4312000
CY2018 us-gaap Increase Decrease In Contract With Customer Asset
IncreaseDecreaseInContractWithCustomerAsset
14444000
CY2020 us-gaap Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
1373000
CY2019 us-gaap Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
735000
CY2018 us-gaap Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
114000
CY2020 us-gaap Increase Decrease In Accounts Payable And Accrued Liabilities
IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
11087000
CY2019 us-gaap Increase Decrease In Accounts Payable And Accrued Liabilities
IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
31046000
CY2018 us-gaap Increase Decrease In Accounts Payable And Accrued Liabilities
IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
47871000
CY2020 us-gaap Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
19434000
CY2019 us-gaap Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
4376000
CY2018 us-gaap Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
16786000
CY2020 us-gaap Increase Decrease In Other Operating Liabilities
IncreaseDecreaseInOtherOperatingLiabilities
808000
CY2019 us-gaap Increase Decrease In Other Operating Liabilities
IncreaseDecreaseInOtherOperatingLiabilities
-14751000
CY2018 us-gaap Increase Decrease In Other Operating Liabilities
IncreaseDecreaseInOtherOperatingLiabilities
-5544000
CY2020 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
286510000
CY2019 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
142028000
CY2018 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
147190000
CY2020 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
24131000
CY2019 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
31750000
CY2018 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
27268000
CY2020 us-gaap Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
2270000
CY2019 us-gaap Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
2159000
CY2018 us-gaap Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
1698000
CY2019 us-gaap Proceeds From Divestiture Of Businesses Net Of Cash Divested
ProceedsFromDivestitureOfBusinessesNetOfCashDivested
1611000
CY2020 us-gaap Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
185941000
CY2019 us-gaap Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
196470000
CY2018 us-gaap Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
70140000
CY2020 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-207802000
CY2019 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-224450000
CY2018 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-95710000
CY2020 us-gaap Proceeds From Long Term Lines Of Credit
ProceedsFromLongTermLinesOfCredit
268000000
CY2019 us-gaap Proceeds From Long Term Lines Of Credit
ProceedsFromLongTermLinesOfCredit
356000000
CY2018 us-gaap Proceeds From Long Term Lines Of Credit
ProceedsFromLongTermLinesOfCredit
124000000
CY2020 us-gaap Repayments Of Long Term Lines Of Credit
RepaymentsOfLongTermLinesOfCredit
226000000
CY2019 us-gaap Repayments Of Long Term Lines Of Credit
RepaymentsOfLongTermLinesOfCredit
228000000
CY2018 us-gaap Repayments Of Long Term Lines Of Credit
RepaymentsOfLongTermLinesOfCredit
119000000
CY2020 us-gaap Repayments Of Senior Debt
RepaymentsOfSeniorDebt
15000000
CY2020 us-gaap Repayments Of Other Debt
RepaymentsOfOtherDebt
46534000
CY2019 us-gaap Repayments Of Other Debt
RepaymentsOfOtherDebt
3784000
CY2018 us-gaap Repayments Of Other Debt
RepaymentsOfOtherDebt
1127000
CY2019 us-gaap Payments Of Financing Costs
PaymentsOfFinancingCosts
1405000
CY2018 us-gaap Payments Of Financing Costs
PaymentsOfFinancingCosts
844000
CY2020 us-gaap Payments Of Dividends Common Stock
PaymentsOfDividendsCommonStock
15499000
CY2019 us-gaap Payments Of Dividends Common Stock
PaymentsOfDividendsCommonStock
14543000
CY2018 us-gaap Payments Of Dividends Common Stock
PaymentsOfDividendsCommonStock
12268000
CY2020 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
30120000
CY2019 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
19550000
CY2018 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
28533000
CY2020 us-gaap Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
1076000
CY2019 us-gaap Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
1498000
CY2018 us-gaap Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
1540000
CY2020 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
2144000
CY2019 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
2350000
CY2018 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
3105000
CY2020 fix Deferred Acquisition Payments
DeferredAcquisitionPayments
650000
CY2019 fix Deferred Acquisition Payments
DeferredAcquisitionPayments
637000
CY2018 fix Deferred Acquisition Payments
DeferredAcquisitionPayments
750000
CY2020 us-gaap Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
9865000
CY2019 us-gaap Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
1343000
CY2018 us-gaap Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
5445000
CY2020 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
-74600000
CY2019 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
87590000
CY2018 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
-42402000
CY2020 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
4108000
CY2019 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
5168000
CY2018 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
9078000
CY2019Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
50788000
CY2018Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
45620000
CY2017Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
36542000
CY2020Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
54896000
CY2019Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
50788000
CY2018Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
45620000
CY2020 us-gaap Nature Of Operations
NatureOfOperations
<p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 10pt 0pt;"><b style="font-weight:bold;">1. Business and Organization</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Comfort Systems USA, Inc., a Delaware corporation, provides comprehensive mechanical and electrical contracting services, which principally includes heating, ventilation and air conditioning (“HVAC”), plumbing, electrical, piping and controls, as well as off-site construction, monitoring and fire protection. We install, maintain, repair and replace products and systems throughout the United States. Approximately 46.7% of our consolidated 2020 revenue is attributable to installation of systems in newly constructed facilities, with the remaining 53.3% attributable to maintenance, repair and replacement services. The terms “Comfort Systems,” “we,” “us,” or the “Company,” refer to Comfort Systems USA, Inc. or Comfort Systems USA, Inc. and its consolidated subsidiaries, as appropriate in the context.</p>
CY2019Q4 fix Gain Recorded As Reduction In Sga
GainRecordedAsReductionInSga
1600000
CY2020 us-gaap Use Of Estimates
UseOfEstimates
<p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Use of Estimates</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The preparation of financial statements in conformity with generally accepted accounting principles requires the use of estimates and assumptions by management in determining the reported amounts of assets and liabilities, revenue and expenses and disclosures regarding contingent assets and liabilities. Actual results could differ from those estimates. The most significant estimates used in our financial statements affect revenue and cost recognition for construction contracts, self-insurance accruals, deferred tax assets, fair value accounting for acquisitions and the quantification of fair value for reporting units in connection with our goodwill impairment testing. </p>
CY2020 us-gaap Interest Paid Net
InterestPaidNet
7684000
CY2019 us-gaap Interest Paid Net
InterestPaidNet
8817000
CY2018 us-gaap Interest Paid Net
InterestPaidNet
3743000
CY2020 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
51286000
CY2019 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
45288000
CY2018 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
33401000
CY2019Q4 us-gaap Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
6907000
CY2020 us-gaap Accounts Receivable Change In Method Credit Loss Expense Reversal
AccountsReceivableChangeInMethodCreditLossExpenseReversal
695000
CY2020 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
5253000
CY2020 fix Allowance For Doubtful Accounts Receivable Charge Offs Net
AllowanceForDoubtfulAccountsReceivableChargeOffsNet
2166000
CY2020 fix Allowance For Doubtful Accounts Receivable Acquired
AllowanceForDoubtfulAccountsReceivableAcquired
335000
CY2020 fix Reclassification Of Allowance For Credit Losses
ReclassificationOfAllowanceForCreditLosses
-315000
CY2020Q4 us-gaap Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
10709000
CY2018Q4 us-gaap Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
5898000
CY2019 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
2978000
CY2019 fix Allowance For Doubtful Accounts Receivable Charge Offs Net
AllowanceForDoubtfulAccountsReceivableChargeOffsNet
3924000
CY2019 fix Allowance For Doubtful Accounts Receivable Acquired
AllowanceForDoubtfulAccountsReceivableAcquired
1955000
CY2019Q4 us-gaap Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
6907000
CY2020 fix Percentage Of Revenue From Contract With Customer
PercentageOfRevenueFromContractWithCustomer
1.000
CY2019 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2615277000
CY2019 fix Percentage Of Revenue From Contract With Customer
PercentageOfRevenueFromContractWithCustomer
1.000
CY2020 fix Warranty Period Of Labor After Servicing
WarrantyPeriodOfLaborAfterServicing
P30D
CY2020 us-gaap Concentration Risk Credit Risk
ConcentrationRiskCreditRisk
<p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Concentrations of Credit Risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We provide services in a broad range of geographic regions. Our credit risk primarily consists of receivables from a variety of customers including general contractors, property owners and developers, and commercial and industrial companies. We are subject to potential credit risk related to changes in business and economic factors throughout the United States within the nonresidential construction industry. However, we are entitled to payment for work performed and have certain lien rights related to that work. Further, we believe that our contract acceptance, billing and collection policies are adequate to manage potential credit risk. We regularly review our accounts receivable and estimate an allowance for uncollectible amounts. We have a diverse customer base, with our top customer representing 5% of consolidated 2020 revenue. </p>
CY2019Q4 us-gaap Gain On Business Interruption Insurance Recovery
GainOnBusinessInterruptionInsuranceRecovery
4800000
CY2020Q4 us-gaap Receivables Long Term Contracts Or Programs
ReceivablesLongTermContractsOrPrograms
3103580000
CY2019Q4 us-gaap Receivables Long Term Contracts Or Programs
ReceivablesLongTermContractsOrPrograms
2518581000
CY2020Q4 fix Customer Advances And Progress Payments For Long Term Contract Or Program
CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram
548435000
CY2019Q4 fix Customer Advances And Progress Payments For Long Term Contract Or Program
CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram
405891000
CY2020Q4 fix Billed Contract Receivables Contracts In Progress
BilledContractReceivablesContractsInProgress
3813171000
CY2019Q4 fix Billed Contract Receivables Contracts In Progress
BilledContractReceivablesContractsInProgress
3033112000
CY2020Q4 us-gaap Unbilled Contracts Receivable
UnbilledContractsReceivable
45596000
CY2019Q4 us-gaap Unbilled Contracts Receivable
UnbilledContractsReceivable
55542000
CY2020Q4 fix Unbilled Accounts Receivable Allowance For Credit Loss
UnbilledAccountsReceivableAllowanceForCreditLoss
784000
CY2020Q4 fix Contract Receivables Contracts In Process Net Receivable Liability
ContractReceivablesContractsInProcessNetReceivableLiability
-207536000
CY2019Q4 fix Contract Receivables Contracts In Process Net Receivable Liability
ContractReceivablesContractsInProcessNetReceivableLiability
-164182000
CY2020Q4 us-gaap Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
18622000
CY2019Q4 us-gaap Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
2736000
CY2020Q4 fix Costs In Excess Of Billings Allowance For Credit Losses
CostsInExcessOfBillingsAllowanceForCreditLosses
79000
CY2020Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
226237000
CY2019Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
166918000
CY2020Q4 fix Contract Receivables Contracts In Process Net Receivable Liability
ContractReceivablesContractsInProcessNetReceivableLiability
-207536000
CY2019Q4 fix Contract Receivables Contracts In Process Net Receivable Liability
ContractReceivablesContractsInProcessNetReceivableLiability
-164182000
CY2020 fix Retention Provisions Construction Contracts Holding Period
RetentionProvisionsConstructionContractsHoldingPeriod
P6M
CY2020Q4 us-gaap Construction Contractor Receivable Retainage
ConstructionContractorReceivableRetainage
124100000
CY2019Q4 us-gaap Construction Contractor Receivable Retainage
ConstructionContractorReceivableRetainage
111700000
CY2020Q4 fix Construction Contractor Retainage Payable
ConstructionContractorRetainagePayable
22200000
CY2019Q4 fix Construction Contractor Retainage Payable
ConstructionContractorRetainagePayable
15800000
CY2020 us-gaap Revenue Performance Obligation Description Of Payment Terms
RevenuePerformanceObligationDescriptionOfPaymentTerms
We typically invoice our customers with payment terms of net due in 30 days
CY2020 fix Receivable Due Term
ReceivableDueTerm
P30D
CY2020 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2856659000
CY2020 fix Percentage Of Revenue From Contract With Customer
PercentageOfRevenueFromContractWithCustomer
1.000
CY2019 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2615277000
CY2019 fix Percentage Of Revenue From Contract With Customer
PercentageOfRevenueFromContractWithCustomer
1.000
CY2020 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2856659000
CY2020 fix Percentage Of Revenue From Contract With Customer
PercentageOfRevenueFromContractWithCustomer
1.000
CY2019 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2615277000
CY2019 fix Percentage Of Revenue From Contract With Customer
PercentageOfRevenueFromContractWithCustomer
1.000
CY2020 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2856659000
CY2020 us-gaap Business Combination Consideration Transferred1
BusinessCombinationConsiderationTransferred1
41600000
CY2019Q4 us-gaap Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
2736000
CY2019Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
166918000
CY2018Q4 us-gaap Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
10213000
CY2018Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
130986000
CY2020 us-gaap Contract With Customer Asset Increase Decrease For Contract Acquired In Business Combination
ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination
9509000
CY2020 us-gaap Contract With Customer Liability Increase Decrease For Contract Acquired In Business Combination
ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination
39885000
CY2019 us-gaap Contract With Customer Asset Increase Decrease For Contract Acquired In Business Combination
ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination
6573000
CY2019 us-gaap Contract With Customer Liability Increase Decrease For Contract Acquired In Business Combination
ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination
31556000
CY2020 us-gaap Contract With Customer Receivable Credit Loss Expense Reversal
ContractWithCustomerReceivableCreditLossExpenseReversal
-79000
CY2020 fix Contract With Customer Asset Increase Decrease For Change Due To Conditional Versus Unconditional
ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional
6456000
CY2020 us-gaap Contract With Customer Liability Change In Timeframe Performance Obligation Satisfied Revenue Recognized
ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized
19434000
CY2019 fix Contract With Customer Asset Increase Decrease For Change Due To Conditional Versus Unconditional
ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional
-14050000
CY2019 us-gaap Contract With Customer Liability Change In Timeframe Performance Obligation Satisfied Revenue Recognized
ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized
4376000
CY2020Q4 us-gaap Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
18622000
CY2020Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
226237000
CY2019Q4 us-gaap Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
2736000
CY2019Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
166918000
CY2020 us-gaap Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
165800000
CY2020Q4 us-gaap Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
1510000000
CY2020Q4 us-gaap Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
P12M
CY2020 fix Renewable Service Maintenance Agreements Term
RenewableServiceMaintenanceAgreementsTerm
P1Y
CY2020Q4 fix Life Insurance Contracts Number Of Employees Covered
LifeInsuranceContractsNumberOfEmployeesCovered
86
CY2020Q4 fix Life Insurance Contracts Face Amount
LifeInsuranceContractsFaceAmount
61700000
CY2020Q4 us-gaap Cash Surrender Value Of Life Insurance
CashSurrenderValueOfLifeInsurance
5400000
CY2019Q4 us-gaap Cash Surrender Value Of Life Insurance
CashSurrenderValueOfLifeInsurance
3900000
CY2019 us-gaap Number Of Businesses Acquired
NumberOfBusinessesAcquired
2
CY2019 us-gaap Business Combination Consideration Transferred1
BusinessCombinationConsiderationTransferred1
2600000
CY2018Q4 us-gaap Goodwill
Goodwill
235182000
CY2019 us-gaap Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
97265000
CY2019Q4 us-gaap Goodwill
Goodwill
332447000
CY2020 us-gaap Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
131945000
CY2020Q4 us-gaap Goodwill
Goodwill
464392000
CY2020 us-gaap Finite Lived Intangible Asset Useful Life
FiniteLivedIntangibleAssetUsefulLife
P11Y8M12D
CY2020Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
366987000
CY2020Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
135180000
CY2019Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
262456000
CY2019Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
102482000
CY2020 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
32700000
CY2019 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
27100000
CY2018 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
20100000
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
32344000
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
27412000
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
23514000
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
22164000
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
19977000
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense After Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
106396000
CY2019Q4 fix Liabilities Due To Former Owners Current
LiabilitiesDueToFormerOwnersCurrent
11219000
CY2020Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
231807000
CY2020Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
264408000
CY2019Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
239165000
CY2020Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
147202000
CY2019Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
129369000
CY2020Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
117206000
CY2019Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
109796000
CY2020 fix Depreciation And Amortization Continuing Operations
DepreciationAndAmortizationContinuingOperations
27900000
CY2019 fix Depreciation And Amortization Continuing Operations
DepreciationAndAmortizationContinuingOperations
24500000
CY2018 fix Depreciation And Amortization Continuing Operations
DepreciationAndAmortizationContinuingOperations
22600000
CY2020Q4 us-gaap Product Warranty Accrual Classified Current
ProductWarrantyAccrualClassifiedCurrent
8914000
CY2019Q4 us-gaap Product Warranty Accrual Classified Current
ProductWarrantyAccrualClassifiedCurrent
7452000
CY2020Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
16586000
CY2019Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
14016000
CY2020Q4 fix Accrued Job Losses
AccruedJobLosses
2151000
CY2019Q4 fix Accrued Job Losses
AccruedJobLosses
2226000
CY2020Q4 us-gaap Sales And Excise Tax Payable Current And Noncurrent
SalesAndExciseTaxPayableCurrentAndNoncurrent
3731000
CY2019Q4 us-gaap Sales And Excise Tax Payable Current And Noncurrent
SalesAndExciseTaxPayableCurrentAndNoncurrent
2938000
CY2020Q4 us-gaap Deferred Revenue Current
DeferredRevenueCurrent
4559000
CY2019Q4 us-gaap Deferred Revenue Current
DeferredRevenueCurrent
5506000
CY2020Q4 fix Liabilities Due To Former Owners Current
LiabilitiesDueToFormerOwnersCurrent
10280000
CY2020Q4 us-gaap Other Sundry Liabilities Current
OtherSundryLiabilitiesCurrent
45271000
CY2019Q4 us-gaap Other Sundry Liabilities Current
OtherSundryLiabilitiesCurrent
38273000
CY2020Q4 us-gaap Other Liabilities Current
OtherLiabilitiesCurrent
91492000
CY2019Q4 us-gaap Other Liabilities Current
OtherLiabilitiesCurrent
81630000
CY2020Q4 us-gaap Debt Longterm And Shortterm Combined Amount
DebtLongtermAndShorttermCombinedAmount
236000000
CY2019Q4 us-gaap Debt Longterm And Shortterm Combined Amount
DebtLongtermAndShorttermCombinedAmount
226483000
CY2020Q4 us-gaap Debt Instrument Unamortized Discount Premium And Debt Issuance Costs Net
DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet
267000
CY2019Q4 us-gaap Debt Instrument Unamortized Discount Premium And Debt Issuance Costs Net
DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet
348000
CY2020Q4 us-gaap Long Term Debt
LongTermDebt
235733000
CY2019Q4 us-gaap Long Term Debt
LongTermDebt
226135000
CY2019Q4 us-gaap Long Term Debt Current
LongTermDebtCurrent
20817000
CY2020Q4 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
235733000
CY2019Q4 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
205318000
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Year Two
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo
23000000
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Year Three
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree
34000000
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Year Four
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour
26500000
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Year Five
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive
152500000
CY2020Q4 us-gaap Debt And Capital Lease Obligations
DebtAndCapitalLeaseObligations
236000000
CY2020 us-gaap Interest Expense Related Party
InterestExpenseRelatedParty
1354000
CY2019 us-gaap Interest Expense Related Party
InterestExpenseRelatedParty
1531000
CY2018 us-gaap Debt Related Commitment Fees And Debt Issuance Costs
DebtRelatedCommitmentFeesAndDebtIssuanceCosts
2211000
CY2020 fix Interest Expense On Interest Rate Swaps
InterestExpenseOnInterestRateSwaps
338000
CY2020 fix Letter Of Credit Fees Amount
LetterOfCreditFeesAmount
830000
CY2019 fix Letter Of Credit Fees Amount
LetterOfCreditFeesAmount
512000
CY2018 fix Letter Of Credit Fees Amount
LetterOfCreditFeesAmount
474000
CY2018 us-gaap Interest Expense Related Party
InterestExpenseRelatedParty
642000
CY2020 us-gaap Debt Related Commitment Fees And Debt Issuance Costs
DebtRelatedCommitmentFeesAndDebtIssuanceCosts
5319000
CY2019 us-gaap Debt Related Commitment Fees And Debt Issuance Costs
DebtRelatedCommitmentFeesAndDebtIssuanceCosts
6887000
CY2020 us-gaap Amortization Of Financing Costs And Discounts
AmortizationOfFinancingCostsAndDiscounts
544000
CY2019 us-gaap Amortization Of Financing Costs And Discounts
AmortizationOfFinancingCostsAndDiscounts
387000
CY2018 us-gaap Amortization Of Financing Costs And Discounts
AmortizationOfFinancingCostsAndDiscounts
383000
CY2020 us-gaap Interest Expense
InterestExpense
8385000
CY2019 us-gaap Interest Expense
InterestExpense
9317000
CY2018 us-gaap Interest Expense
InterestExpense
3710000
CY2020Q4 fix Debt Instrument Covenant Fixed Charge Coverage Ratio
DebtInstrumentCovenantFixedChargeCoverageRatio
2.00
CY2020 fix Variable Lease And Short Term Lease Cost
VariableLeaseAndShortTermLeaseCost
7700000
CY2019 fix Variable Lease And Short Term Lease Cost
VariableLeaseAndShortTermLeaseCost
8400000
CY2020Q4 us-gaap Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
0.042
CY2019Q4 us-gaap Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
0.039
CY2020 us-gaap Operating Lease Expense
OperatingLeaseExpense
28200000
CY2019 us-gaap Operating Lease Expense
OperatingLeaseExpense
24800000
CY2018 us-gaap Operating Lease Expense
OperatingLeaseExpense
23400000
CY2020Q4 us-gaap Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
P7Y6M
CY2019Q4 us-gaap Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
P8Y1M6D
CY2020 us-gaap Payments For Rent
PaymentsForRent
4200000
CY2019 us-gaap Payments For Rent
PaymentsForRent
3700000
CY2018 us-gaap Payments For Rent
PaymentsForRent
4800000
CY2019Q4 us-gaap Operating Lease Liability
OperatingLeaseLiability
86713000
CY2020Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
16586000
CY2019Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
14016000
CY2020Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
80576000
CY2019Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
72697000
CY2020Q4 us-gaap Operating Lease Liability
OperatingLeaseLiability
97162000
CY2020Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
94727000
CY2019Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
84073000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
20254000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
17004000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
14727000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
13221000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
12108000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
36645000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
113959000
CY2020Q4 us-gaap Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
16797000
CY2020Q4 us-gaap Operating Lease Liability
OperatingLeaseLiability
97162000
CY2020 us-gaap Operating Lease Payments
OperatingLeasePayments
20443000
CY2019 us-gaap Operating Lease Payments
OperatingLeasePayments
16895000
CY2020 us-gaap Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
27346000
CY2019 us-gaap Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
26811000
CY2019 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
8388000
CY2018 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
8589000
CY2020 us-gaap Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
49354000
CY2020 us-gaap Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
36556000
CY2019 us-gaap Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
33281000
CY2018 us-gaap Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
22728000
CY2020 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
12798000
CY2019 us-gaap Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
41669000
CY2018 us-gaap Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
31317000
CY2020 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
-5483000
CY2019 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
-3750000
CY2018 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
4347000
CY2020 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
-2470000
CY2019 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
-501000
CY2018 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
109000
CY2020 us-gaap Deferred Federal State And Local Tax Expense Benefit
DeferredFederalStateAndLocalTaxExpenseBenefit
-7953000
CY2019 us-gaap Deferred Federal State And Local Tax Expense Benefit
DeferredFederalStateAndLocalTaxExpenseBenefit
-4251000
CY2018 us-gaap Deferred Federal State And Local Tax Expense Benefit
DeferredFederalStateAndLocalTaxExpenseBenefit
4456000
CY2020 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
41401000
CY2019 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
37418000
CY2018 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
35773000
CY2020 us-gaap Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
0.216
CY2019 us-gaap Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
0.247
CY2018 us-gaap Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
0.241
CY2020 us-gaap Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
0.21
CY2019 us-gaap Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
0.21
CY2018 us-gaap Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
0.21
CY2020 us-gaap Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
40223000
CY2019 us-gaap Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
31866000
CY2018 us-gaap Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
31222000
CY2020 us-gaap Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
8406000
CY2019 us-gaap Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
6644000
CY2018 us-gaap Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
7470000
CY2020 us-gaap Income Tax Reconciliation Change In Deferred Tax Assets Valuation Allowance
IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
-254000
CY2019 us-gaap Income Tax Reconciliation Change In Deferred Tax Assets Valuation Allowance
IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
-279000
CY2018 us-gaap Income Tax Reconciliation Change In Deferred Tax Assets Valuation Allowance
IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
-2852000
CY2020Q4 us-gaap Unrecognized Tax Benefits
UnrecognizedTaxBenefits
28756000
CY2020 us-gaap Income Tax Reconciliation Tax Contingencies
IncomeTaxReconciliationTaxContingencies
18557000
CY2019 us-gaap Income Tax Reconciliation Tax Contingencies
IncomeTaxReconciliationTaxContingencies
7338000
CY2018 us-gaap Income Tax Reconciliation Tax Contingencies
IncomeTaxReconciliationTaxContingencies
-15000
CY2020 us-gaap Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
2470000
CY2019 us-gaap Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
2180000
CY2018 us-gaap Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
1926000
CY2020 us-gaap Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
26133000
CY2019 us-gaap Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
4569000
CY2018 us-gaap Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
2726000
CY2020 fix Income Tax Reconciliation Section179d Deduction
IncomeTaxReconciliationSection179dDeduction
1062000
CY2019 fix Income Tax Reconciliation Section179d Deduction
IncomeTaxReconciliationSection179dDeduction
5126000
CY2018 fix Income Tax Reconciliation Net Operating Loss Carryforward
IncomeTaxReconciliationNetOperatingLossCarryforward
2225000
CY2020 us-gaap Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Amount
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount
-426000
CY2019 us-gaap Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Amount
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount
-714000
CY2018 us-gaap Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Amount
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount
-1293000
CY2020 us-gaap Income Tax Reconciliation Other Reconciling Items
IncomeTaxReconciliationOtherReconcilingItems
-380000
CY2019 us-gaap Income Tax Reconciliation Other Reconciling Items
IncomeTaxReconciliationOtherReconcilingItems
78000
CY2018 us-gaap Income Tax Reconciliation Other Reconciling Items
IncomeTaxReconciliationOtherReconcilingItems
-184000
CY2020 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
41401000
CY2019 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
37418000
CY2018 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
35773000
CY2018Q1 fix Automatic Method Change Tax Expense Benefit
AutomaticMethodChangeTaxExpenseBenefit
2800000
CY2019Q3 us-gaap Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
4600000
CY2018 us-gaap Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
2700000
CY2020Q3 us-gaap Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
7300000
CY2018 fix Income Tax Reconciliation Net Operating Loss Carryforward
IncomeTaxReconciliationNetOperatingLossCarryforward
2200000
CY2019 fix Income Tax Reconciliation Section179d Deduction Net Of Tax Contingencies
IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies
2200000
CY2020Q3 us-gaap Unrecognized Tax Benefits Decreases Resulting From Settlements With Taxing Authorities
UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
8300000
CY2020Q4 us-gaap Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
26400000
CY2020Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
2186000
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
1660000
CY2020Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
2791000
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
2561000
CY2020Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
39761000
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
25569000
CY2020Q4 fix Deferred Tax Assets Lease Liability
DeferredTaxAssetsLeaseLiability
22768000
CY2019Q4 fix Deferred Tax Assets Lease Liability
DeferredTaxAssetsLeaseLiability
20873000
CY2020Q4 us-gaap Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
12127000
CY2019Q4 us-gaap Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
2750000
CY2019Q4 us-gaap Deferred Tax Assets Goodwill And Intangible Assets
DeferredTaxAssetsGoodwillAndIntangibleAssets
7988000
CY2020Q4 us-gaap Deferred Tax Assets Other
DeferredTaxAssetsOther
627000
CY2019Q4 us-gaap Deferred Tax Assets Other
DeferredTaxAssetsOther
525000
CY2020Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
80260000
CY2019Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
61926000
CY2020Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
514000
CY2019Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
369000
CY2020Q4 us-gaap Deferred Tax Assets Net
DeferredTaxAssetsNet
79746000
CY2020Q3 us-gaap Gross Profit
GrossProfit
147196000
CY2020Q4 us-gaap Gross Profit
GrossProfit
136999000
CY2020Q1 us-gaap Net Income Loss
NetIncomeLoss
17716000
CY2020Q2 us-gaap Net Income Loss
NetIncomeLoss
39495000
CY2020Q3 us-gaap Net Income Loss
NetIncomeLoss
50088000
CY2020Q4 us-gaap Net Income Loss
NetIncomeLoss
42840000
CY2020Q1 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.48
CY2019Q4 us-gaap Deferred Tax Assets Net
DeferredTaxAssetsNet
61557000
CY2020Q4 us-gaap Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
13877000
CY2019Q4 us-gaap Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
11286000
CY2020Q4 us-gaap Deferred Tax Liabilities Leasing Arrangements
DeferredTaxLiabilitiesLeasingArrangements
22715000
CY2019Q4 us-gaap Deferred Tax Liabilities Leasing Arrangements
DeferredTaxLiabilitiesLeasingArrangements
20873000
CY2020Q4 fix Deferred Tax Liabilities Long Term Contracts
DeferredTaxLiabilitiesLongTermContracts
609000
CY2019Q4 fix Deferred Tax Liabilities Long Term Contracts
DeferredTaxLiabilitiesLongTermContracts
876000
CY2020Q4 us-gaap Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
242000
CY2020Q4 us-gaap Deferred Tax Liabilities Goodwill And Intangible Assets Goodwill
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
11615000
CY2019Q4 us-gaap Deferred Tax Liabilities Goodwill And Intangible Assets Goodwill
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
6020000
CY2020Q4 us-gaap Deferred Tax Liabilities Other
DeferredTaxLiabilitiesOther
2626000
CY2019Q4 us-gaap Deferred Tax Liabilities Other
DeferredTaxLiabilitiesOther
2004000
CY2020Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
51684000
CY2019Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
41059000
CY2020Q4 us-gaap Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
28062000
CY2019Q4 us-gaap Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
20498000
CY2020Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
29401000
CY2019Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
21923000
CY2020Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
1339000
CY2019Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
1425000
CY2020Q4 us-gaap Deferred Tax Assets Operating Loss Carryforwards Domestic
DeferredTaxAssetsOperatingLossCarryforwardsDomestic
9400000
CY2020Q4 us-gaap Deferred Tax Assets Operating Loss Carryforwards State And Local
DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal
2700000
CY2019Q4 us-gaap Unrecognized Tax Benefits
UnrecognizedTaxBenefits
10199000
CY2018Q4 us-gaap Unrecognized Tax Benefits
UnrecognizedTaxBenefits
2966000
CY2017Q4 us-gaap Unrecognized Tax Benefits
UnrecognizedTaxBenefits
8929000
CY2020 us-gaap Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
26858000
CY2019 us-gaap Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
7473000
CY2018 us-gaap Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
2726000
CY2019 us-gaap Unrecognized Tax Benefits Decreases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
240000
CY2018 us-gaap Unrecognized Tax Benefits Decreases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
8689000
CY2020 us-gaap Unrecognized Tax Benefits Decreases Resulting From Settlements With Taxing Authorities
UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
8301000
CY2019Q4 us-gaap Unrecognized Tax Benefits
UnrecognizedTaxBenefits
10199000
CY2018Q4 us-gaap Unrecognized Tax Benefits
UnrecognizedTaxBenefits
2966000
CY2020Q4 us-gaap Unrecognized Tax Benefits
UnrecognizedTaxBenefits
28800000
CY2019Q4 us-gaap Unrecognized Tax Benefits
UnrecognizedTaxBenefits
10200000
CY2018Q4 us-gaap Unrecognized Tax Benefits
UnrecognizedTaxBenefits
3000000.0
CY2020Q4 us-gaap Unrecognized Tax Benefits Income Tax Penalties And Interest Accrued
UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
0
CY2019Q4 us-gaap Unrecognized Tax Benefits Income Tax Penalties And Interest Accrued
UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
0
CY2018Q4 us-gaap Unrecognized Tax Benefits Income Tax Penalties And Interest Accrued
UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
600000
CY2020Q3 us-gaap Unrecognized Tax Benefits Decreases Resulting From Settlements With Taxing Authorities
UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
8300000
CY2020 fix Defined Contribution Plan Maximum Annual Contribution Per Employee By Employer Percent
DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent
0.025
CY2020 us-gaap Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
16300000
CY2019 us-gaap Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
14200000
CY2018 us-gaap Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
10800000
CY2020 fix Defined Contribution Plan Amount Payable
DefinedContributionPlanAmountPayable
500000
CY2019 fix Defined Contribution Plan Amount Payable
DefinedContributionPlanAmountPayable
300000
CY2020 fix Multi Employer Pension Plan Number Of Employees Who Are Union Members
MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers
6
CY2019 fix Multi Employer Pension Plan Number Of Employees Who Are Union Members
MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers
7
CY2018 us-gaap Multiemployer Plan Pension Insignificant Plan Contribution
MultiemployerPlanPensionInsignificantPlanContribution
0
CY2019 us-gaap Multiemployer Plan Pension Insignificant Plan Contribution
MultiemployerPlanPensionInsignificantPlanContribution
0
CY2020 us-gaap Multiemployer Plan Pension Insignificant Plan Contribution
MultiemployerPlanPensionInsignificantPlanContribution
0
CY2020 fix Defined Benefit Plan Period In Which Certain Individuals Are Entitled To Fixed Annual Payments
DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments
P15Y
CY2020 fix Defined Benefit Plan Period In Which Certain Individuals Are Entitled To Fixed Annual Payments
DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments
P15Y
CY2020 fix Defined Benefit Plan Maximum Age In Which Certain Individuals Are Entitled To Fixed Annual Payments
DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments
P65Y
CY2020 fix Defined Benefit Plan Maximum Age In Which Certain Individuals Are Entitled To Fixed Annual Payments
DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments
P65Y
CY2020 fix Defined Benefit Plan Period Portion Of Benefits Vesting After Ten Years Of Completed Service
DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService
0.50
CY2020 fix Defined Benefit Plan Period Of Completed Service Over Which50 Percent Of Benefits Are Vested
DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested
P10Y
CY2020 fix Defined Benefit Plan Period Portion Of Benefits Vesting After Fifteen Years Of Completed Service
DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService
0.75
CY2020 fix Defined Benefit Plan Period Of Completed Service Over Which75 Percent Of Benefits Are Vested
DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested
P15Y
CY2020 fix Defined Benefit Plan Period Of Service Over Which Benefits Are Fully Vested
DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested
P20Y
CY2020Q4 us-gaap Pension And Other Postretirement Defined Benefit Plans Liabilities Noncurrent
PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent
4000000.0
CY2019Q4 us-gaap Pension And Other Postretirement Defined Benefit Plans Liabilities Noncurrent
PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent
4100000
CY2020Q4 fix Self Insurance Amount Of Loss Fully Insured Above Deductible Coverage Amount
SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount
132500000
CY2020Q4 fix Self Insurance Aggregate Loss Insurance Covered Amount
SelfInsuranceAggregateLossInsuranceCoveredAmount
132500000
CY2020Q4 us-gaap Common Stock Shares Outstanding
CommonStockSharesOutstanding
36188000
CY2019Q4 us-gaap Common Stock Shares Outstanding
CommonStockSharesOutstanding
36658000
CY2018Q4 us-gaap Common Stock Shares Outstanding
CommonStockSharesOutstanding
36894000
CY2020 fix Effect Of Using Weighted Average Common Shares Outstanding
EffectOfUsingWeightedAverageCommonSharesOutstanding
354000
CY2019 fix Effect Of Using Weighted Average Common Shares Outstanding
EffectOfUsingWeightedAverageCommonSharesOutstanding
196000
CY2018 fix Effect Of Using Weighted Average Common Shares Outstanding
EffectOfUsingWeightedAverageCommonSharesOutstanding
308000
CY2020 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
36542000
CY2019 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
36854000
CY2018 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
37202000
CY2020 us-gaap Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
123000
CY2019 us-gaap Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
204000
CY2018 us-gaap Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
283000
CY2020 us-gaap Incremental Common Shares Attributable To Contingently Issuable Shares
IncrementalCommonSharesAttributableToContingentlyIssuableShares
73000
CY2019 us-gaap Incremental Common Shares Attributable To Contingently Issuable Shares
IncrementalCommonSharesAttributableToContingentlyIssuableShares
73000
CY2018 us-gaap Incremental Common Shares Attributable To Contingently Issuable Shares
IncrementalCommonSharesAttributableToContingentlyIssuableShares
107000
CY2020 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
36738000
CY2019 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
37131000
CY2018 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
37592000
CY2020 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
6900000
CY2019 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
5900000
CY2018 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
7200000
CY2020 us-gaap Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
1500000
CY2019 us-gaap Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
1300000
CY2018 us-gaap Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
1500000
CY2020Q4 us-gaap Revenues
Revenues
698961000
CY2020Q1 us-gaap Gross Profit
GrossProfit
117093000
CY2020Q2 us-gaap Gross Profit
GrossProfit
145695000
CY2018 us-gaap Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
P5Y3M18D
CY2020 us-gaap Number Of Reportable Segments
NumberOfReportableSegments
2
CY2020 us-gaap Number Of Reportable Segments
NumberOfReportableSegments
2
CY2020 us-gaap Number Of Reportable Segments
NumberOfReportableSegments
2
CY2020 us-gaap Number Of Reportable Segments
NumberOfReportableSegments
2
CY2020 us-gaap Number Of Reportable Segments
NumberOfReportableSegments
2
CY2020Q4 us-gaap Assets
Assets
1757355000
CY2019Q4 us-gaap Assets
Assets
1505012000
CY2020 us-gaap Revenues
Revenues
2856659000
CY2020 us-gaap Gross Profit
GrossProfit
546983000
CY2020 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
24131000
CY2019 us-gaap Revenues
Revenues
2615277000
CY2019 us-gaap Gross Profit
GrossProfit
501943000
CY2019 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
31750000
CY2018 us-gaap Revenues
Revenues
2182879000
CY2018 us-gaap Gross Profit
GrossProfit
446279000
CY2018 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
27268000
CY2020Q1 us-gaap Revenues
Revenues
700131000
CY2020Q2 us-gaap Revenues
Revenues
743468000
CY2020Q3 us-gaap Revenues
Revenues
714099000
CY2020Q2 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.08
CY2020Q3 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.37
CY2020Q4 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.18
CY2020Q1 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.48
CY2020Q2 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.08
CY2020Q3 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.36
CY2020Q4 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.17
CY2019Q1 us-gaap Revenues
Revenues
538473000
CY2019Q2 us-gaap Revenues
Revenues
650302000
CY2019Q3 us-gaap Revenues
Revenues
706918000
CY2019Q4 us-gaap Revenues
Revenues
719584000
CY2019Q1 us-gaap Gross Profit
GrossProfit
106665000
CY2019Q2 us-gaap Gross Profit
GrossProfit
120016000
CY2019Q3 us-gaap Gross Profit
GrossProfit
142702000
CY2019Q4 us-gaap Gross Profit
GrossProfit
132560000
CY2019Q1 us-gaap Net Income Loss
NetIncomeLoss
19866000
CY2019Q2 us-gaap Net Income Loss
NetIncomeLoss
24173000
CY2019Q3 us-gaap Net Income Loss
NetIncomeLoss
36233000
CY2019Q4 us-gaap Net Income Loss
NetIncomeLoss
34052000
CY2019Q1 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.54
CY2019Q2 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.65
CY2019Q3 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.98
CY2019Q4 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.93
CY2019Q1 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.53
CY2019Q2 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.65
CY2019Q3 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.98
CY2019Q4 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.92
CY2019Q4 us-gaap Gain On Business Interruption Insurance Recovery
GainOnBusinessInterruptionInsuranceRecovery
4800000

Files In Submission

Name View Source Status
0001558370-21-001828-index-headers.html Edgar Link pending
0001558370-21-001828-index.html Edgar Link pending
0001558370-21-001828.txt Edgar Link pending
0001558370-21-001828-xbrl.zip Edgar Link pending
FilingSummary.xml Edgar Link unprocessable
Financial_Report.xlsx Edgar Link pending
fix-20201231.xsd Edgar Link pending
fix-20201231x10k.htm Edgar Link pending
fix-20201231x10k002.jpg Edgar Link pending
fix-20201231x10k_htm.xml Edgar Link completed
fix-20201231xex21d1.htm Edgar Link pending
fix-20201231xex23d1.htm Edgar Link pending
fix-20201231xex31d1.htm Edgar Link pending
fix-20201231xex31d2.htm Edgar Link pending
fix-20201231xex32d1.htm Edgar Link pending
fix-20201231xex32d2.htm Edgar Link pending
fix-20201231_cal.xml Edgar Link unprocessable
fix-20201231_def.xml Edgar Link unprocessable
fix-20201231_lab.xml Edgar Link unprocessable
fix-20201231_pre.xml Edgar Link unprocessable
MetaLinks.json Edgar Link pending
R1.htm Edgar Link pending
R10.htm Edgar Link pending
R11.htm Edgar Link pending
R12.htm Edgar Link pending
R13.htm Edgar Link pending
R14.htm Edgar Link pending
R15.htm Edgar Link pending
R16.htm Edgar Link pending
R17.htm Edgar Link pending
R18.htm Edgar Link pending
R19.htm Edgar Link pending
R2.htm Edgar Link pending
R20.htm Edgar Link pending
R21.htm Edgar Link pending
R22.htm Edgar Link pending
R23.htm Edgar Link pending
R24.htm Edgar Link pending
R25.htm Edgar Link pending
R26.htm Edgar Link pending
R27.htm Edgar Link pending
R28.htm Edgar Link pending
R29.htm Edgar Link pending
R3.htm Edgar Link pending
R30.htm Edgar Link pending
R31.htm Edgar Link pending
R32.htm Edgar Link pending
R33.htm Edgar Link pending
R34.htm Edgar Link pending
R35.htm Edgar Link pending
R36.htm Edgar Link pending
R37.htm Edgar Link pending
R38.htm Edgar Link pending
R39.htm Edgar Link pending
R4.htm Edgar Link pending
R40.htm Edgar Link pending
R41.htm Edgar Link pending
R42.htm Edgar Link pending
R43.htm Edgar Link pending
R44.htm Edgar Link pending
R45.htm Edgar Link pending
R46.htm Edgar Link pending
R47.htm Edgar Link pending
R48.htm Edgar Link pending
R49.htm Edgar Link pending
R5.htm Edgar Link pending
R50.htm Edgar Link pending
R51.htm Edgar Link pending
R52.htm Edgar Link pending
R53.htm Edgar Link pending
R54.htm Edgar Link pending
R55.htm Edgar Link pending
R56.htm Edgar Link pending
R57.htm Edgar Link pending
R58.htm Edgar Link pending
R59.htm Edgar Link pending
R6.htm Edgar Link pending
R60.htm Edgar Link pending
R61.htm Edgar Link pending
R62.htm Edgar Link pending
R63.htm Edgar Link pending
R64.htm Edgar Link pending
R65.htm Edgar Link pending
R66.htm Edgar Link pending
R67.htm Edgar Link pending
R68.htm Edgar Link pending
R69.htm Edgar Link pending
R7.htm Edgar Link pending
R70.htm Edgar Link pending
R71.htm Edgar Link pending
R72.htm Edgar Link pending
R73.htm Edgar Link pending
R74.htm Edgar Link pending
R75.htm Edgar Link pending
R76.htm Edgar Link pending
R77.htm Edgar Link pending
R78.htm Edgar Link pending
R79.htm Edgar Link pending
R8.htm Edgar Link pending
R80.htm Edgar Link pending
R9.htm Edgar Link pending
report.css Edgar Link pending
Show.js Edgar Link pending