2018 Q4 Form 10-K Financial Statement
#000155837020001491 Filed on February 26, 2020
Income Statement
Concept | 2018 Q4 | 2018 Q3 | 2018 Q2 |
---|---|---|---|
Revenue | $588.4M | $594.5M | $535.0M |
YoY Change | 27.6% | 23.63% | 14.96% |
Cost Of Revenue | $470.2M | $466.7M | $423.9M |
YoY Change | 28.02% | 22.81% | 14.65% |
Gross Profit | $118.2M | $127.9M | $111.2M |
YoY Change | 26.12% | 26.73% | 16.18% |
Gross Profit Margin | 20.09% | 21.51% | 20.78% |
Selling, General & Admin | $75.50M | $75.30M | $71.21M |
YoY Change | 13.88% | 18.95% | 12.49% |
% of Gross Profit | 63.89% | 58.89% | 64.05% |
Research & Development | |||
YoY Change | |||
% of Gross Profit | |||
Depreciation & Amortization | $12.00M | $10.90M | $10.60M |
YoY Change | 17.65% | 4.81% | -0.93% |
% of Gross Profit | 10.15% | 8.52% | 9.53% |
Operating Expenses | $80.40M | $75.30M | $71.21M |
YoY Change | 14.69% | 12.89% | 7.08% |
Operating Profit | $37.78M | $52.79M | $40.18M |
YoY Change | 60.06% | 54.36% | 37.59% |
Interest Expense | -$3.600M | $1.152M | $736.0K |
YoY Change | -427.27% | -23.2% | -146.0% |
% of Operating Profit | -9.53% | 2.18% | 1.83% |
Other Income/Expense, Net | $100.0K | -$654.0K | $3.169M |
YoY Change | -90.0% | ||
Pretax Income | $34.50M | $52.14M | $43.34M |
YoY Change | 32.69% | 45.23% | 56.48% |
Income Tax | $9.300M | $13.60M | $10.80M |
% Of Pretax Income | 26.96% | 26.08% | 24.91% |
Net Earnings | $25.16M | $38.54M | $32.55M |
YoY Change | 235.41% | 72.83% | 80.82% |
Net Earnings / Revenue | 4.28% | 6.48% | 6.08% |
Basic Earnings Per Share | $0.68 | $1.03 | $0.87 |
Diluted Earnings Per Share | $0.67 | $1.02 | $0.87 |
COMMON SHARES | |||
Basic Shares Outstanding | 37.29M | 37.22M | |
Diluted Shares Outstanding | 37.67M | 37.61M |
Balance Sheet
Concept | 2018 Q4 | 2018 Q3 | 2018 Q2 |
---|---|---|---|
SHORT-TERM ASSETS | |||
Cash & Short-Term Investments | $45.60M | $19.20M | $28.00M |
YoY Change | 24.93% | -34.92% | -18.84% |
Cash & Equivalents | $45.62M | $19.25M | $28.00M |
Short-Term Investments | |||
Other Short-Term Assets | $6.500M | $6.300M | $5.200M |
YoY Change | -21.69% | -45.69% | -7.14% |
Inventory | $12.42M | $12.80M | $12.00M |
Prepaid Expenses | |||
Receivables | $528.8M | $549.1M | $505.1M |
Other Receivables | $16.30M | $12.20M | $11.60M |
Total Short-Term Assets | $609.7M | $599.7M | $561.8M |
YoY Change | 24.58% | 21.05% | 12.99% |
LONG-TERM ASSETS | |||
Property, Plant & Equipment | $99.62M | $103.0M | $91.90M |
YoY Change | 13.72% | 37.52% | 23.36% |
Goodwill | $235.2M | ||
YoY Change | 17.25% | ||
Intangibles | $95.28M | ||
YoY Change | |||
Long-Term Investments | |||
YoY Change | |||
Other Assets | $5.155M | $27.40M | $22.30M |
YoY Change | -81.25% | -14.38% | -36.29% |
Total Long-Term Assets | $452.9M | $460.2M | $397.4M |
YoY Change | 15.62% | 18.24% | 0.35% |
TOTAL ASSETS | |||
Total Short-Term Assets | $609.7M | $599.7M | $561.8M |
Total Long-Term Assets | $452.9M | $460.2M | $397.4M |
Total Assets | $1.063B | $1.060B | $959.2M |
YoY Change | 20.6% | 19.82% | 7.39% |
SHORT-TERM LIABILITIES | |||
YoY Change | |||
Accounts Payable | $176.2M | $150.9M | $145.4M |
YoY Change | 33.46% | 23.49% | 16.98% |
Accrued Expenses | $123.8M | $115.4M | $98.70M |
YoY Change | 22.09% | 14.14% | 4.11% |
Deferred Revenue | $131.0M | ||
YoY Change | 23.57% | ||
Short-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Long-Term Debt Due | $3.279M | $3.300M | $1.100M |
YoY Change | 446.5% | 371.43% | -8.33% |
Total Short-Term Liabilities | $467.1M | $445.8M | $418.3M |
YoY Change | 24.98% | 19.26% | 11.43% |
LONG-TERM LIABILITIES | |||
Long-Term Debt | $73.64M | $93.70M | $57.90M |
YoY Change | 22.94% | 15.68% | -44.06% |
Other Long-Term Liabilities | $22.43M | $22.80M | $17.20M |
YoY Change | -17.83% | 46.15% | 14.67% |
Total Long-Term Liabilities | $96.07M | $116.5M | $75.10M |
YoY Change | 10.17% | 20.6% | -36.62% |
TOTAL LIABILITIES | |||
Total Short-Term Liabilities | $467.1M | $445.8M | $418.3M |
Total Long-Term Liabilities | $96.07M | $116.5M | $75.10M |
Total Liabilities | $564.5M | $567.2M | $498.2M |
YoY Change | 21.87% | 19.99% | 0.4% |
SHAREHOLDERS EQUITY | |||
Retained Earnings | $268.9M | ||
YoY Change | |||
Common Stock | $316.9M | ||
YoY Change | |||
Preferred Stock | |||
YoY Change | |||
Treasury Stock (at cost) | $87.75M | ||
YoY Change | |||
Treasury Stock Shares | $4.230M | ||
Shareholders Equity | $498.0M | $492.8M | $461.0M |
YoY Change | |||
Total Liabilities & Shareholders Equity | $1.063B | $1.060B | $959.2M |
YoY Change | 20.6% | 19.82% | 7.39% |
Cashflow Statement
Concept | 2018 Q4 | 2018 Q3 | 2018 Q2 |
---|---|---|---|
OPERATING ACTIVITIES | |||
Net Income | $25.16M | $38.54M | $32.55M |
YoY Change | 235.41% | 72.83% | 80.82% |
Depreciation, Depletion And Amortization | $12.00M | $10.90M | $10.60M |
YoY Change | 17.65% | 4.81% | -0.93% |
Cash From Operating Activities | $79.20M | $30.50M | $33.60M |
YoY Change | 63.64% | -31.46% | 202.7% |
INVESTING ACTIVITIES | |||
Capital Expenditures | -$5.200M | -$8.000M | -$8.500M |
YoY Change | -72.19% | 53.85% | 30.77% |
Acquisitions | |||
YoY Change | |||
Other Investing Activities | -$4.200M | -$51.20M | -$6.600M |
YoY Change | -800.0% | 365.45% | -92.06% |
Cash From Investing Activities | -$9.400M | -$59.20M | -$15.20M |
YoY Change | -48.07% | 267.7% | -83.05% |
FINANCING ACTIVITIES | |||
Cash Dividend Paid | |||
YoY Change | |||
Common Stock Issuance & Retirement, Net | |||
YoY Change | |||
Debt Paid & Issued, Net | |||
YoY Change | |||
Cash From Financing Activities | -43.40M | 19.90M | -15.70M |
YoY Change | 86.27% | -159.58% | -119.24% |
NET CHANGE | |||
Cash From Operating Activities | 79.20M | 30.50M | 33.60M |
Cash From Investing Activities | -9.400M | -59.20M | -15.20M |
Cash From Financing Activities | -43.40M | 19.90M | -15.70M |
Net Change In Cash | 26.40M | -8.800M | 2.700M |
YoY Change | 277.14% | 76.0% | -10.0% |
FREE CASH FLOW | |||
Cash From Operating Activities | $79.20M | $30.50M | $33.60M |
Capital Expenditures | -$5.200M | -$8.000M | -$8.500M |
Free Cash Flow | $84.40M | $38.50M | $42.10M |
YoY Change | 25.78% | -22.54% | 139.2% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
CY2019Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
||
CY2018Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
||
CY2019Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
||
CY2018Q4 | 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
|
||
CY2017 | us-gaap |
Unrecognized Tax Benefits Decreases Resulting From Settlements With Taxing Authorities
UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
|
||
CY2019 | us-gaap |
Revenue Practical Expedient Remaining Performance Obligation
RevenuePracticalExpedientRemainingPerformanceObligation
|
true | |
CY2018Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | |
CY2019Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | |
CY2019 | dei |
Entity Central Index Key
EntityCentralIndexKey
|
0001035983 | |
CY2019 | dei |
Current Fiscal Year End Date
CurrentFiscalYearEndDate
|
--12-31 | |
CY2019 | dei |
Document Fiscal Year Focus
DocumentFiscalYearFocus
|
2019 | |
CY2019 | dei |
Document Fiscal Period Focus
DocumentFiscalPeriodFocus
|
FY | |
CY2019 | dei |
Amendment Flag
AmendmentFlag
|
false | |
CY2019Q4 | 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 | |
CY2019 | us-gaap |
Lessee Operating Lease Existence Of Option To Extend
LesseeOperatingLeaseExistenceOfOptionToExtend
|
true | |
CY2019Q4 | fix |
Gain Recorded As Reduction In Cost Of Services Expense
GainRecordedAsReductionInCostOfServicesExpense
|
3200000 | |
CY2019 | dei |
Document Type
DocumentType
|
10-K | |
CY2019 | dei |
Document Annual Report
DocumentAnnualReport
|
true | |
CY2019 | dei |
Document Period End Date
DocumentPeriodEndDate
|
2019-12-31 | |
CY2019 | dei |
Document Transition Report
DocumentTransitionReport
|
false | |
CY2019 | dei |
Entity File Number
EntityFileNumber
|
1-13011 | |
CY2019 | dei |
Entity Registrant Name
EntityRegistrantName
|
Comfort Systems USA, Inc. | |
CY2019 | dei |
Entity Incorporation State Country Code
EntityIncorporationStateCountryCode
|
DE | |
CY2019 | dei |
Entity Tax Identification Number
EntityTaxIdentificationNumber
|
76-0526487 | |
CY2019 | dei |
Entity Address Address Line1
EntityAddressAddressLine1
|
675 Bering Drive | |
CY2019 | dei |
Entity Address Address Line2
EntityAddressAddressLine2
|
Suite 400 | |
CY2019 | dei |
Entity Address City Or Town
EntityAddressCityOrTown
|
Houston | |
CY2019 | dei |
Entity Address State Or Province
EntityAddressStateOrProvince
|
TX | |
CY2019 | dei |
Entity Address Postal Zip Code
EntityAddressPostalZipCode
|
77057 | |
CY2019 | dei |
City Area Code
CityAreaCode
|
713 | |
CY2019 | dei |
Local Phone Number
LocalPhoneNumber
|
830-9600 | |
CY2020Q1 | dei |
Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
|
36613587 | |
CY2019Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
50788000 | |
CY2018Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
45620000 | |
CY2019Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
6907000 | |
CY2018Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
5898000 | |
CY2019Q4 | us-gaap |
Billed Contract Receivables
BilledContractReceivables
|
619037000 | |
CY2019 | dei |
Security12b Title
Security12bTitle
|
Common Stock, $.01 par value | |
CY2019 | dei |
Trading Symbol
TradingSymbol
|
FIX | |
CY2019 | dei |
Security Exchange Name
SecurityExchangeName
|
NYSE | |
CY2019 | dei |
Entity Well Known Seasoned Issuer
EntityWellKnownSeasonedIssuer
|
Yes | |
CY2019 | dei |
Entity Voluntary Filers
EntityVoluntaryFilers
|
No | |
CY2019 | dei |
Entity Current Reporting Status
EntityCurrentReportingStatus
|
Yes | |
CY2019 | dei |
Entity Interactive Data Current
EntityInteractiveDataCurrent
|
Yes | |
CY2019 | dei |
Entity Filer Category
EntityFilerCategory
|
Large Accelerated Filer | |
CY2019 | dei |
Entity Small Business
EntitySmallBusiness
|
false | |
CY2019 | dei |
Entity Emerging Growth Company
EntityEmergingGrowthCompany
|
false | |
CY2019 | dei |
Entity Shell Company
EntityShellCompany
|
false | |
CY2019Q2 | dei |
Entity Public Float
EntityPublicFloat
|
1830000000 | |
CY2018Q4 | us-gaap |
Billed Contract Receivables
BilledContractReceivables
|
481366000 | |
CY2019Q4 | us-gaap |
Unbilled Contracts Receivable
UnbilledContractsReceivable
|
55542000 | |
CY2018Q4 | us-gaap |
Unbilled Contracts Receivable
UnbilledContractsReceivable
|
37180000 | |
CY2019Q4 | us-gaap |
Nontrade Receivables Current
NontradeReceivablesCurrent
|
37632000 | |
CY2018Q4 | us-gaap |
Nontrade Receivables Current
NontradeReceivablesCurrent
|
16361000 | |
CY2019Q4 | us-gaap |
Inventory Net
InventoryNet
|
10053000 | |
CY2018Q4 | us-gaap |
Inventory Net
InventoryNet
|
12416000 | |
CY2019Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
14396000 | |
CY2018Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
6544000 | |
CY2019Q4 | us-gaap |
Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
|
2736000 | |
CY2018Q4 | us-gaap |
Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
|
10213000 | |
CY2019Q4 | us-gaap |
Assets Current
AssetsCurrent
|
790184000 | |
CY2018Q4 | us-gaap |
Assets Current
AssetsCurrent
|
609700000 | |
CY2019Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
109796000 | |
CY2018Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
99618000 | |
CY2019Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
84073000 | |
CY2019Q4 | us-gaap |
Goodwill
Goodwill
|
332447000 | |
CY2018Q4 | us-gaap |
Goodwill
Goodwill
|
235182000 | |
CY2019Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
159974000 | |
CY2018Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
95275000 | |
CY2019Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
21923000 | |
CY2018Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
17634000 | |
CY2019Q4 | us-gaap |
Other Assets Noncurrent
OtherAssetsNoncurrent
|
6615000 | |
CY2018Q4 | us-gaap |
Other Assets Noncurrent
OtherAssetsNoncurrent
|
5155000 | |
CY2019Q4 | us-gaap |
Assets
Assets
|
1505012000 | |
CY2018Q4 | us-gaap |
Assets
Assets
|
1062564000 | |
CY2019Q4 | us-gaap |
Long Term Debt Current
LongTermDebtCurrent
|
20817000 | |
CY2018Q4 | us-gaap |
Long Term Debt Current
LongTermDebtCurrent
|
3279000 | |
CY2019Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
196195000 | |
CY2018Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
176167000 | |
CY2018Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
1387000 | |
CY2019Q4 | us-gaap |
Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
|
102891000 | |
CY2018Q4 | us-gaap |
Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
|
87388000 | |
CY2019Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
166918000 | |
CY2018Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
130986000 | |
CY2019Q4 | us-gaap |
Self Insurance Reserve Current
SelfInsuranceReserveCurrent
|
39546000 | |
CY2018Q4 | us-gaap |
Self Insurance Reserve Current
SelfInsuranceReserveCurrent
|
36386000 | |
CY2019Q4 | us-gaap |
Other Liabilities Current
OtherLiabilitiesCurrent
|
81630000 | |
CY2018Q4 | us-gaap |
Other Liabilities Current
OtherLiabilitiesCurrent
|
32852000 | |
CY2019Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
607997000 | |
CY2018Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
467058000 | |
CY2019Q4 | us-gaap |
Long Term Debt Noncurrent
LongTermDebtNoncurrent
|
205318000 | |
CY2018Q4 | us-gaap |
Long Term Debt Noncurrent
LongTermDebtNoncurrent
|
73639000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
72697000 | |
CY2019Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
1425000 | |
CY2019Q4 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
32271000 | |
CY2018Q4 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
22433000 | |
CY2019Q4 | us-gaap |
Liabilities
Liabilities
|
919708000 | |
CY2018Q4 | us-gaap |
Liabilities
Liabilities
|
564517000 | |
CY2018Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
0.01 | |
CY2019Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
0.01 | |
CY2018Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
5000000 | |
CY2019Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
5000000 | |
CY2018Q4 | us-gaap |
Preferred Stock Shares Issued
PreferredStockSharesIssued
|
0 | |
CY2019Q4 | us-gaap |
Preferred Stock Shares Issued
PreferredStockSharesIssued
|
0 | |
CY2018Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.01 | |
CY2019Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.01 | |
CY2018Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
102969912 | |
CY2019Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
102969912 | |
CY2019Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
41123365 | |
CY2018Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
41123365 | |
CY2019Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
411000 | |
CY2018Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
411000 | |
CY2019Q4 | us-gaap |
Treasury Stock Shares
TreasuryStockShares
|
4465448 | |
CY2018Q4 | us-gaap |
Treasury Stock Shares
TreasuryStockShares
|
4229653 | |
CY2019Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
103960000 | |
CY2018Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
87747000 | |
CY2019Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
320168000 | |
CY2018Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
316479000 | |
CY2019Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
368685000 | |
CY2018Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
268904000 | |
CY2019Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
585304000 | |
CY2018Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
498047000 | |
CY2019Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
1505012000 | |
CY2018Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
1062564000 | |
CY2019 | us-gaap |
Revenues
Revenues
|
2615277000 | |
CY2018 | us-gaap |
Revenues
Revenues
|
2182879000 | |
CY2017 | us-gaap |
Revenues
Revenues
|
1787922000 | |
CY2019 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
2113334000 | |
CY2018 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
1736600000 | |
CY2017 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
1421641000 | |
CY2019 | us-gaap |
Gross Profit
GrossProfit
|
501943000 | |
CY2018 | us-gaap |
Gross Profit
GrossProfit
|
446279000 | |
CY2017 | us-gaap |
Gross Profit
GrossProfit
|
366281000 | |
CY2019 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
340005000 | |
CY2018 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
296986000 | |
CY2017 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
266586000 | |
CY2017 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
1105000 | |
CY2019 | us-gaap |
Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
|
1701000 | |
CY2018 | us-gaap |
Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
|
945000 | |
CY2017 | us-gaap |
Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
|
670000 | |
CY2019 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
163639000 | |
CY2018 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
150238000 | |
CY2017 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
99260000 | |
CY2019 | us-gaap |
Investment Income Interest
InvestmentIncomeInterest
|
224000 | |
CY2018 | us-gaap |
Investment Income Interest
InvestmentIncomeInterest
|
73000 | |
CY2017 | us-gaap |
Investment Income Interest
InvestmentIncomeInterest
|
70000 | |
CY2019 | us-gaap |
Interest Expense
InterestExpense
|
9317000 | |
CY2018 | us-gaap |
Interest Expense
InterestExpense
|
3710000 | |
CY2017 | us-gaap |
Interest Expense
InterestExpense
|
3156000 | |
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 | |
CY2017 | us-gaap |
Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
|
-3715000 | |
CY2019 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
187000 | |
CY2018 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
4141000 | |
CY2017 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
1049000 | |
CY2019 | us-gaap |
Nonoperating Income Expense
NonoperatingIncomeExpense
|
-11897000 | |
CY2018 | us-gaap |
Nonoperating Income Expense
NonoperatingIncomeExpense
|
-1562000 | |
CY2017 | us-gaap |
Nonoperating Income Expense
NonoperatingIncomeExpense
|
1678000 | |
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 | |
CY2017 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
100938000 | |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
37418000 | |
CY2018 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
35773000 | |
CY2017 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
45666000 | |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
114324000 | |
CY2018 | us-gaap |
Net Income Loss
NetIncomeLoss
|
112903000 | |
CY2017 | us-gaap |
Net Income Loss
NetIncomeLoss
|
55272000 | |
CY2019 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
3.10 | |
CY2018 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
3.03 | |
CY2017 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.48 | |
CY2019 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
3.08 | |
CY2018 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
3.00 | |
CY2017 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.47 | |
CY2019 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
36854000 | |
CY2018 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
37202000 | |
CY2017 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
37239000 | |
CY2019 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
37131000 | |
CY2018 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
37592000 | |
CY2017 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
37672000 | |
CY2019 | us-gaap |
Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
|
0.395 | |
CY2018 | us-gaap |
Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
|
0.330 | |
CY2017 | us-gaap |
Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
|
0.295 | |
CY2016Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
376633000 | |
CY2017 | us-gaap |
Profit Loss
ProfitLoss
|
55272000 | |
CY2017 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
2052000 | |
CY2017 | fix |
Stock Issued During Period Value Restricted And Performance Stock Award Gross
StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross
|
1616000 | |
CY2017 | us-gaap |
Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
|
1419000 | |
CY2017 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
3785000 | |
CY2017 | us-gaap |
Dividends Common Stock Cash
DividendsCommonStockCash
|
10987000 | |
CY2017 | us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
9007000 | |
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 | |
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 | |
CY2019 | us-gaap |
Profit Loss
ProfitLoss
|
114324000 | |
CY2018 | us-gaap |
Profit Loss
ProfitLoss
|
112903000 | |
CY2017 | us-gaap |
Profit Loss
ProfitLoss
|
55272000 | |
CY2019 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
27082000 | |
CY2018 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
20089000 | |
CY2017 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
17404000 | |
CY2019 | us-gaap |
Depreciation
Depreciation
|
24490000 | |
CY2018 | us-gaap |
Depreciation
Depreciation
|
22600000 | |
CY2017 | us-gaap |
Depreciation
Depreciation
|
20052000 | |
CY2019 | fix |
Change In Right Of Use Assets
ChangeInRightOfUseAssets
|
16887000 | |
CY2017 | us-gaap |
Goodwill And Intangible Asset Impairment
GoodwillAndIntangibleAssetImpairment
|
1105000 | |
CY2019 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
2978000 | |
CY2018 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
3562000 | |
CY2017 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
182000 | |
CY2019 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-4251000 | |
CY2018 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
4456000 | |
CY2019 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
-2366000 | |
CY2018 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
1538000 | |
CY2017 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
4178000 | |
CY2019 | us-gaap |
Amortization Of Financing Costs
AmortizationOfFinancingCosts
|
387000 | |
CY2018 | us-gaap |
Amortization Of Financing Costs
AmortizationOfFinancingCosts
|
383000 | |
CY2019 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
49508000 | |
CY2018 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
68621000 | |
CY2017 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
37799000 | |
CY2017 | us-gaap |
Amortization Of Financing Costs
AmortizationOfFinancingCosts
|
376000 | |
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 | |
CY2017 | us-gaap |
Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
|
670000 | |
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 | |
CY2017 | us-gaap |
Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
|
-3715000 | |
CY2019 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
5878000 | |
CY2018 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
7161000 | |
CY2017 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
6377000 | |
CY2017 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
584000 | |
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 | |
CY2017 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
-2467000 | |
CY2019 | fix |
Increase Decrease In Contract With Customer Assets
IncreaseDecreaseInContractWithCustomerAssets
|
4312000 | |
CY2018 | fix |
Increase Decrease In Contract With Customer Assets
IncreaseDecreaseInContractWithCustomerAssets
|
14444000 | |
CY2017 | fix |
Increase Decrease In Contract With Customer Assets
IncreaseDecreaseInContractWithCustomerAssets
|
-1869000 | |
CY2019 | us-gaap |
Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
|
735000 | |
CY2018 | us-gaap |
Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
|
114000 | |
CY2017 | us-gaap |
Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
|
-1005000 | |
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 | |
CY2017 | us-gaap |
Increase Decrease In Accounts Payable And Accrued Liabilities
IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
|
22068000 | |
CY2019 | us-gaap |
Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
|
4376000 | |
CY2018 | us-gaap |
Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
|
16786000 | |
CY2017 | us-gaap |
Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
|
13265000 | |
CY2019 | us-gaap |
Increase Decrease In Other Operating Liabilities
IncreaseDecreaseInOtherOperatingLiabilities
|
-14751000 | |
CY2018 | us-gaap |
Increase Decrease In Other Operating Liabilities
IncreaseDecreaseInOtherOperatingLiabilities
|
-5544000 | |
CY2017 | us-gaap |
Increase Decrease In Other Operating Liabilities
IncreaseDecreaseInOtherOperatingLiabilities
|
11238000 | |
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 | |
CY2017 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
114090000 | |
CY2019 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
31750000 | |
CY2018 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
27268000 | |
CY2017 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
35467000 | |
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 | |
CY2017 | us-gaap |
Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
|
1359000 | |
CY2019 | us-gaap |
Proceeds From Divestiture Of Businesses Net Of Cash Divested
ProceedsFromDivestitureOfBusinessesNetOfCashDivested
|
1611000 | |
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 | |
CY2017 | us-gaap |
Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
|
94860000 | |
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 | |
CY2017 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-128968000 | |
CY2019 | us-gaap |
Proceeds From Long Term Lines Of Credit
ProceedsFromLongTermLinesOfCredit
|
356000000 | |
CY2018 | us-gaap |
Proceeds From Long Term Lines Of Credit
ProceedsFromLongTermLinesOfCredit
|
124000000 | |
CY2017 | us-gaap |
Proceeds From Long Term Lines Of Credit
ProceedsFromLongTermLinesOfCredit
|
177000000 | |
CY2019 | us-gaap |
Repayments Of Long Term Lines Of Credit
RepaymentsOfLongTermLinesOfCredit
|
228000000 | |
CY2018 | us-gaap |
Repayments Of Long Term Lines Of Credit
RepaymentsOfLongTermLinesOfCredit
|
119000000 | |
CY2017 | us-gaap |
Repayments Of Long Term Lines Of Credit
RepaymentsOfLongTermLinesOfCredit
|
132000000 | |
CY2019 | us-gaap |
Repayments Of Other Debt
RepaymentsOfOtherDebt
|
3784000 | |
CY2018 | us-gaap |
Repayments Of Other Debt
RepaymentsOfOtherDebt
|
1127000 | |
CY2017 | us-gaap |
Repayments Of Other Debt
RepaymentsOfOtherDebt
|
835000 | |
CY2017 | us-gaap |
Repayments Of Long Term Capital Lease Obligations
RepaymentsOfLongTermCapitalLeaseObligations
|
256000 | |
CY2019 | us-gaap |
Payments Of Financing Costs
PaymentsOfFinancingCosts
|
1405000 | |
CY2018 | us-gaap |
Payments Of Financing Costs
PaymentsOfFinancingCosts
|
844000 | |
CY2019 | us-gaap |
Payments Of Dividends Common Stock
PaymentsOfDividendsCommonStock
|
14543000 | |
CY2018 | us-gaap |
Payments Of Dividends Common Stock
PaymentsOfDividendsCommonStock
|
12268000 | |
CY2017 | us-gaap |
Payments Of Dividends Common Stock
PaymentsOfDividendsCommonStock
|
10987000 | |
CY2019 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
19550000 | |
CY2018 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
28533000 | |
CY2017 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
9007000 | |
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 | |
CY2017 | us-gaap |
Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
|
1419000 | |
CY2019 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
2350000 | |
CY2018 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
3105000 | |
CY2017 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
2052000 | |
CY2019 | fix |
Deferred Acquisition Payments
DeferredAcquisitionPayments
|
637000 | |
CY2018 | fix |
Deferred Acquisition Payments
DeferredAcquisitionPayments
|
750000 | |
CY2017 | fix |
Deferred Acquisition Payments
DeferredAcquisitionPayments
|
2802000 | |
CY2019 | us-gaap |
Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
|
1343000 | |
CY2018 | us-gaap |
Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
|
5445000 | |
CY2017 | us-gaap |
Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
|
2400000 | |
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 | |
CY2017 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
19346000 | |
CY2019 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Excluding Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect
|
5168000 | |
CY2018 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Excluding Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect
|
9078000 | |
CY2017 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Excluding Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect
|
4468000 | |
CY2018Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
45620000 | |
CY2017Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
36542000 | |
CY2016Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
32074000 | |
CY2019Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
50788000 | |
CY2018Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
45620000 | |
CY2017Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
36542000 | |
CY2019 | us-gaap |
Nature Of Operations
NatureOfOperations
|
<p style="font-family:'Times New Roman';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';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 45.9% of our consolidated 2019 revenue is attributable to installation of systems in newly constructed facilities, with the remaining 54.1% 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> | |
CY2019 | us-gaap |
Use Of Estimates
UseOfEstimates
|
<p style="font-family:'Times New Roman';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';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, the allowance for doubtful accounts, self-insurance accruals, deferred tax assets, warranty accruals, fair value accounting for acquisitions and the quantification of fair value for reporting units in connection with our goodwill impairment testing. </p> | |
CY2019 | us-gaap |
Interest Paid Net
InterestPaidNet
|
8817000 | |
CY2018 | us-gaap |
Interest Paid Net
InterestPaidNet
|
3743000 | |
CY2017 | us-gaap |
Interest Paid Net
InterestPaidNet
|
2832000 | |
CY2019 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
45288000 | |
CY2018 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
33401000 | |
CY2017 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
38144000 | |
CY2019Q4 | us-gaap |
Receivables Long Term Contracts Or Programs
ReceivablesLongTermContractsOrPrograms
|
2518581000 | |
CY2018Q4 | us-gaap |
Receivables Long Term Contracts Or Programs
ReceivablesLongTermContractsOrPrograms
|
1574460000 | |
CY2019Q4 | fix |
Customer Advances And Progress Payments For Long Term Contract Or Program
CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram
|
405891000 | |
CY2018Q4 | fix |
Customer Advances And Progress Payments For Long Term Contract Or Program
CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram
|
300514000 | |
CY2019Q4 | fix |
Billed Contract Receivables Contracts In Progress
BilledContractReceivablesContractsInProgress
|
3033112000 | |
CY2018Q4 | fix |
Billed Contract Receivables Contracts In Progress
BilledContractReceivablesContractsInProgress
|
1958567000 | |
CY2019Q4 | us-gaap |
Unbilled Contracts Receivable
UnbilledContractsReceivable
|
55542000 | |
CY2018Q4 | us-gaap |
Unbilled Contracts Receivable
UnbilledContractsReceivable
|
37180000 | |
CY2019Q4 | fix |
Contract Receivables Contracts In Process Net Receivable Liability
ContractReceivablesContractsInProcessNetReceivableLiability
|
-164182000 | |
CY2018Q4 | fix |
Contract Receivables Contracts In Process Net Receivable Liability
ContractReceivablesContractsInProcessNetReceivableLiability
|
-120773000 | |
CY2019Q4 | us-gaap |
Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
|
2736000 | |
CY2018Q4 | us-gaap |
Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
|
10213000 | |
CY2019Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
166918000 | |
CY2018Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
130986000 | |
CY2019Q4 | fix |
Contract Receivables Contracts In Process Net Receivable Liability
ContractReceivablesContractsInProcessNetReceivableLiability
|
-164182000 | |
CY2018Q4 | fix |
Contract Receivables Contracts In Process Net Receivable Liability
ContractReceivablesContractsInProcessNetReceivableLiability
|
-120773000 | |
CY2019 | fix |
Retention Provisions Construction Contracts Holding Period
RetentionProvisionsConstructionContractsHoldingPeriod
|
P6M | |
CY2019Q4 | us-gaap |
Contract Receivable Retainage Due One Year Or Less
ContractReceivableRetainageDueOneYearOrLess
|
111700000 | |
CY2018Q4 | us-gaap |
Contract Receivable Retainage Due One Year Or Less
ContractReceivableRetainageDueOneYearOrLess
|
80800000 | |
CY2019Q4 | fix |
Retention Payable Due In Next Twelve Months
RetentionPayableDueInNextTwelveMonths
|
15800000 | |
CY2018Q4 | fix |
Retention Payable Due In Next Twelve Months
RetentionPayableDueInNextTwelveMonths
|
13700000 | |
CY2019 | us-gaap |
Revenue Performance Obligation Description Of Payment Terms
RevenuePerformanceObligationDescriptionOfPaymentTerms
|
We typically invoice our customers with payment terms of net due in 30 days | |
CY2019 | fix |
Receivable Due Term
ReceivableDueTerm
|
P30D | |
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 | |
CY2018 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
2182879000 | |
CY2018 | 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 | |
CY2018 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
2182879000 | |
CY2018 | 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 | |
CY2018 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
2182879000 | |
CY2018 | fix |
Percentage Of Revenue From Contract With Customer
PercentageOfRevenueFromContractWithCustomer
|
1.000 | |
CY2018Q4 | us-gaap |
Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
|
10213000 | |
CY2018Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
130986000 | |
CY2017Q4 | us-gaap |
Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
|
30116000 | |
CY2017Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
106005000 | |
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 | |
CY2018 | us-gaap |
Contract With Customer Asset Increase Decrease For Contract Acquired In Business Combination
ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination
|
2833000 | |
CY2018 | us-gaap |
Contract With Customer Liability Increase Decrease For Contract Acquired In Business Combination
ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination
|
8195000 | |
CY2019 | fix |
Contract With Customer Asset Increase Decrease For Change Due To Conditional Versus Unconditional
ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional
|
-14050000 | |
CY2018 | fix |
Contract With Customer Asset Increase Decrease For Change Due To Conditional Versus Unconditional
ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional
|
6244000 | |
CY2018 | us-gaap |
Contract With Customer Asset Reclassified To Receivable
ContractWithCustomerAssetReclassifiedToReceivable
|
28980000 | |
CY2019 | us-gaap |
Contract With Customer Liability Change In Timeframe Performance Obligation Satisfied Revenue Recognized
ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized
|
4376000 | |
CY2018 | us-gaap |
Contract With Customer Liability Change In Timeframe Performance Obligation Satisfied Revenue Recognized
ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized
|
16786000 | |
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 | |
CY2019 | us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
126700000 | |
CY2019Q4 | us-gaap |
Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
|
1600000000 | |
CY2019Q4 | us-gaap |
Revenue Remaining Performance Obligation Percentage
RevenueRemainingPerformanceObligationPercentage
|
0.85 | |
CY2019Q4 | us-gaap |
Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
|
P12M | |
CY2019 | fix |
Renewable Service Maintenance Agreements Term
RenewableServiceMaintenanceAgreementsTerm
|
P1Y | |
CY2019 | fix |
Variable Lease And Short Term Lease Cost
VariableLeaseAndShortTermLeaseCost
|
8400000 | |
CY2019Q4 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.039 | |
CY2019 | us-gaap |
Operating Lease Expense
OperatingLeaseExpense
|
24800000 | |
CY2018 | us-gaap |
Operating Lease Expense
OperatingLeaseExpense
|
23400000 | |
CY2017 | us-gaap |
Operating Lease Expense
OperatingLeaseExpense
|
21100000 | |
CY2019Q4 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P8Y1M6D | |
CY2019 | us-gaap |
Payments For Rent
PaymentsForRent
|
3700000 | |
CY2018 | us-gaap |
Payments For Rent
PaymentsForRent
|
4800000 | |
CY2017 | us-gaap |
Payments For Rent
PaymentsForRent
|
4800000 | |
CY2019Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
84073000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
14016000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
72697000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
86713000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
|
17124000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
|
15096000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
|
12873000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
|
10797000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
|
9222000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
|
36954000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
|
102066000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
|
15353000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
86713000 | |
CY2018Q4 | us-gaap |
Operating Leases Future Minimum Payments Due Current
OperatingLeasesFutureMinimumPaymentsDueCurrent
|
13503000 | |
CY2018Q4 | us-gaap |
Operating Leases Future Minimum Payments Due In Two Years
OperatingLeasesFutureMinimumPaymentsDueInTwoYears
|
10768000 | |
CY2018Q4 | us-gaap |
Operating Leases Future Minimum Payments Due In Three Years
OperatingLeasesFutureMinimumPaymentsDueInThreeYears
|
9449000 | |
CY2018Q4 | us-gaap |
Operating Leases Future Minimum Payments Due In Four Years
OperatingLeasesFutureMinimumPaymentsDueInFourYears
|
7707000 | |
CY2018Q4 | us-gaap |
Operating Leases Future Minimum Payments Due In Five Years
OperatingLeasesFutureMinimumPaymentsDueInFiveYears
|
6402000 | |
CY2018Q4 | us-gaap |
Operating Leases Future Minimum Payments Due Thereafter
OperatingLeasesFutureMinimumPaymentsDueThereafter
|
28328000 | |
CY2018Q4 | us-gaap |
Operating Leases Future Minimum Payments Due
OperatingLeasesFutureMinimumPaymentsDue
|
76157000 | |
CY2019 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
16895000 | |
CY2019 | us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
26811000 | |
CY2019 | fix |
Warranty Period Of Labor After Servicing
WarrantyPeriodOfLaborAfterServicing
|
P30D | |
CY2019 | us-gaap |
Concentration Risk Credit Risk
ConcentrationRiskCreditRisk
|
<p style="font-family:'Times New Roman';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';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 in 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 2019 revenue. </p> | |
CY2019Q4 | us-gaap |
Gain On Business Interruption Insurance Recovery
GainOnBusinessInterruptionInsuranceRecovery
|
4800000 | |
CY2019Q4 | fix |
Gain Recorded As Reduction In Sga
GainRecordedAsReductionInSga
|
1600000 | |
CY2019Q4 | fix |
Life Insurance Contracts Number Of Employees Covered
LifeInsuranceContractsNumberOfEmployeesCovered
|
65 | |
CY2019Q4 | fix |
Life Insurance Contracts Face Amount
LifeInsuranceContractsFaceAmount
|
50600000 | |
CY2019Q4 | us-gaap |
Cash Surrender Value Of Life Insurance
CashSurrenderValueOfLifeInsurance
|
3900000 | |
CY2018Q4 | us-gaap |
Cash Surrender Value Of Life Insurance
CashSurrenderValueOfLifeInsurance
|
3300000 | |
CY2019 | us-gaap |
Business Acquisitions Pro Forma Revenue
BusinessAcquisitionsProFormaRevenue
|
2703638000 | |
CY2018 | us-gaap |
Business Acquisitions Pro Forma Revenue
BusinessAcquisitionsProFormaRevenue
|
2574206000 | |
CY2019 | us-gaap |
Business Acquisitions Pro Forma Net Income Loss
BusinessAcquisitionsProFormaNetIncomeLoss
|
152136000 | |
CY2018 | us-gaap |
Business Acquisitions Pro Forma Net Income Loss
BusinessAcquisitionsProFormaNetIncomeLoss
|
143473000 | |
CY2019Q1 | us-gaap |
Number Of Businesses Acquired
NumberOfBusinessesAcquired
|
1 | |
CY2019Q2 | us-gaap |
Number Of Businesses Acquired
NumberOfBusinessesAcquired
|
1 | |
CY2019 | us-gaap |
Business Combination Consideration Transferred1
BusinessCombinationConsiderationTransferred1
|
2600000 | |
CY2018Q1 | us-gaap |
Number Of Businesses Acquired
NumberOfBusinessesAcquired
|
2 | |
CY2018 | us-gaap |
Business Combination Consideration Transferred1
BusinessCombinationConsiderationTransferred1
|
96400000 | |
CY2018Q3 | fix |
Number Of Acquisitions Reported As Separate Operations
NumberOfAcquisitionsReportedAsSeparateOperations
|
1 | |
CY2017 | us-gaap |
Number Of Businesses Acquired
NumberOfBusinessesAcquired
|
4 | |
CY2017 | us-gaap |
Business Combination Consideration Transferred1
BusinessCombinationConsiderationTransferred1
|
9400000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
|
13732000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense After Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
|
72178000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
159974000 | |
CY2019Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal After Year Five
LongTermDebtMaturitiesRepaymentsOfPrincipalAfterYearFive
|
110500000 | |
CY2018Q3 | us-gaap |
Number Of Businesses Acquired
NumberOfBusinessesAcquired
|
2 | |
CY2018Q2 | us-gaap |
Number Of Businesses Acquired
NumberOfBusinessesAcquired
|
3 | |
CY2017Q4 | us-gaap |
Goodwill
Goodwill
|
200584000 | |
CY2018 | us-gaap |
Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
|
34598000 | |
CY2018Q4 | us-gaap |
Goodwill
Goodwill
|
235182000 | |
CY2019 | us-gaap |
Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
|
97265000 | |
CY2019Q4 | us-gaap |
Goodwill
Goodwill
|
332447000 | |
CY2017Q1 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
1100000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
262456000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
102482000 | |
CY2018Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
176975000 | |
CY2018Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
81700000 | |
CY2019 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
27100000 | |
CY2018 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
20100000 | |
CY2017 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
17400000 | |
CY2016Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
4288000 | |
CY2019 | fix |
Provision For Doubtful Accounts Excluding Discontinued Operations
ProvisionForDoubtfulAccountsExcludingDiscontinuedOperations
|
2978000 | |
CY2018 | fix |
Provision For Doubtful Accounts Excluding Discontinued Operations
ProvisionForDoubtfulAccountsExcludingDiscontinuedOperations
|
3562000 | |
CY2017 | fix |
Provision For Doubtful Accounts Excluding Discontinued Operations
ProvisionForDoubtfulAccountsExcludingDiscontinuedOperations
|
182000 | |
CY2019 | fix |
Allowance For Doubtful Accounts Receivable Charge Offs Net
AllowanceForDoubtfulAccountsReceivableChargeOffsNet
|
3924000 | |
CY2018 | fix |
Allowance For Doubtful Accounts Receivable Charge Offs Net
AllowanceForDoubtfulAccountsReceivableChargeOffsNet
|
1304000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
|
23246000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
|
19191000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
|
16545000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
|
15082000 | |
CY2017 | fix |
Allowance For Doubtful Accounts Receivable Charge Offs Net
AllowanceForDoubtfulAccountsReceivableChargeOffsNet
|
1829000 | |
CY2019Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
239165000 | |
CY2018Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
218839000 | |
CY2019Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
129369000 | |
CY2018Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
119221000 | |
CY2019Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
109796000 | |
CY2018Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
99618000 | |
CY2019 | fix |
Depreciation And Amortization Continuing Operations
DepreciationAndAmortizationContinuingOperations
|
24500000 | |
CY2018 | fix |
Depreciation And Amortization Continuing Operations
DepreciationAndAmortizationContinuingOperations
|
22600000 | |
CY2017 | fix |
Depreciation And Amortization Continuing Operations
DepreciationAndAmortizationContinuingOperations
|
20100000 | |
CY2018Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
5898000 | |
CY2017Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
3400000 | |
CY2019 | fix |
Allowance For Doubtful Accounts Receivable Acquired
AllowanceForDoubtfulAccountsReceivableAcquired
|
1955000 | |
CY2018 | fix |
Allowance For Doubtful Accounts Receivable Acquired
AllowanceForDoubtfulAccountsReceivableAcquired
|
240000 | |
CY2017 | fix |
Allowance For Doubtful Accounts Receivable Acquired
AllowanceForDoubtfulAccountsReceivableAcquired
|
759000 | |
CY2019Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
6907000 | |
CY2018Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
5898000 | |
CY2017Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
3400000 | |
CY2019Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Year Two
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo
|
17666000 | |
CY2019Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Year Three
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree
|
27500000 | |
CY2019Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Year Four
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour
|
27500000 | |
CY2019Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Year Five
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive
|
22500000 | |
CY2019Q4 | us-gaap |
Product Warranty Accrual Classified Current
ProductWarrantyAccrualClassifiedCurrent
|
7452000 | |
CY2018Q4 | us-gaap |
Product Warranty Accrual Classified Current
ProductWarrantyAccrualClassifiedCurrent
|
6453000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
14016000 | |
CY2019Q4 | fix |
Accrued Job Losses
AccruedJobLosses
|
2226000 | |
CY2018Q4 | fix |
Accrued Job Losses
AccruedJobLosses
|
1495000 | |
CY2019Q4 | us-gaap |
Sales And Excise Tax Payable Current And Noncurrent
SalesAndExciseTaxPayableCurrentAndNoncurrent
|
2938000 | |
CY2018Q4 | us-gaap |
Sales And Excise Tax Payable Current And Noncurrent
SalesAndExciseTaxPayableCurrentAndNoncurrent
|
2685000 | |
CY2019Q4 | us-gaap |
Deferred Revenue Current
DeferredRevenueCurrent
|
5506000 | |
CY2018Q4 | us-gaap |
Deferred Revenue Current
DeferredRevenueCurrent
|
5233000 | |
CY2019Q4 | fix |
Liabilities Due To Former Owners Current
LiabilitiesDueToFormerOwnersCurrent
|
11219000 | |
CY2018Q4 | fix |
Liabilities Due To Former Owners Current
LiabilitiesDueToFormerOwnersCurrent
|
2045000 | |
CY2019Q4 | us-gaap |
Other Sundry Liabilities Current
OtherSundryLiabilitiesCurrent
|
38273000 | |
CY2018Q4 | us-gaap |
Other Sundry Liabilities Current
OtherSundryLiabilitiesCurrent
|
14941000 | |
CY2019Q4 | us-gaap |
Other Liabilities Current
OtherLiabilitiesCurrent
|
81630000 | |
CY2018Q4 | us-gaap |
Other Liabilities Current
OtherLiabilitiesCurrent
|
32852000 | |
CY2019Q4 | us-gaap |
Debt Longterm And Shortterm Combined Amount
DebtLongtermAndShorttermCombinedAmount
|
226483000 | |
CY2018Q4 | us-gaap |
Debt Longterm And Shortterm Combined Amount
DebtLongtermAndShorttermCombinedAmount
|
76918000 | |
CY2019Q4 | us-gaap |
Debt Instrument Unamortized Discount Premium And Debt Issuance Costs Net
DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet
|
348000 | |
CY2019Q4 | us-gaap |
Long Term Debt
LongTermDebt
|
226135000 | |
CY2018Q4 | us-gaap |
Long Term Debt
LongTermDebt
|
76918000 | |
CY2019Q4 | us-gaap |
Long Term Debt Current
LongTermDebtCurrent
|
20817000 | |
CY2018Q4 | us-gaap |
Long Term Debt Current
LongTermDebtCurrent
|
3279000 | |
CY2019Q4 | us-gaap |
Long Term Debt Noncurrent
LongTermDebtNoncurrent
|
205318000 | |
CY2018Q4 | us-gaap |
Long Term Debt Noncurrent
LongTermDebtNoncurrent
|
73639000 | |
CY2019Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Next Twelve Months
LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths
|
20817000 | |
CY2019Q4 | us-gaap |
Debt And Capital Lease Obligations
DebtAndCapitalLeaseObligations
|
226483000 | |
CY2019 | us-gaap |
Interest Expense Related Party
InterestExpenseRelatedParty
|
1531000 | |
CY2018 | us-gaap |
Interest Expense Related Party
InterestExpenseRelatedParty
|
642000 | |
CY2017 | us-gaap |
Interest Expense Related Party
InterestExpenseRelatedParty
|
365000 | |
CY2019 | us-gaap |
Debt Related Commitment Fees And Debt Issuance Costs
DebtRelatedCommitmentFeesAndDebtIssuanceCosts
|
6887000 | |
CY2018 | us-gaap |
Debt Related Commitment Fees And Debt Issuance Costs
DebtRelatedCommitmentFeesAndDebtIssuanceCosts
|
2211000 | |
CY2017 | us-gaap |
Debt Related Commitment Fees And Debt Issuance Costs
DebtRelatedCommitmentFeesAndDebtIssuanceCosts
|
1862000 | |
CY2019 | fix |
Letter Of Credit Fees Amount
LetterOfCreditFeesAmount
|
512000 | |
CY2018 | fix |
Letter Of Credit Fees Amount
LetterOfCreditFeesAmount
|
474000 | |
CY2017 | fix |
Letter Of Credit Fees Amount
LetterOfCreditFeesAmount
|
553000 | |
CY2019 | us-gaap |
Amortization Of Financing Costs And Discounts
AmortizationOfFinancingCostsAndDiscounts
|
387000 | |
CY2018 | us-gaap |
Amortization Of Financing Costs And Discounts
AmortizationOfFinancingCostsAndDiscounts
|
383000 | |
CY2017 | us-gaap |
Amortization Of Financing Costs And Discounts
AmortizationOfFinancingCostsAndDiscounts
|
376000 | |
CY2019 | us-gaap |
Interest Expense
InterestExpense
|
9317000 | |
CY2018 | us-gaap |
Interest Expense
InterestExpense
|
3710000 | |
CY2017 | us-gaap |
Interest Expense
InterestExpense
|
3156000 | |
CY2019Q4 | fix |
Debt Instrument Covenant Fixed Charge Coverage Ratio
DebtInstrumentCovenantFixedChargeCoverageRatio
|
2.00 | |
CY2018 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
31222000 | |
CY2017 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
35328000 | |
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 | |
CY2019 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.247 | |
CY2018 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.241 | |
CY2017 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.452 | |
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 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.35 | |
CY2019 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
31866000 | |
CY2019 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
33281000 | |
CY2018 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
22728000 | |
CY2017 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
35434000 | |
CY2019 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
8388000 | |
CY2018 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
8589000 | |
CY2017 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
6054000 | |
CY2019 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
41669000 | |
CY2018 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
31317000 | |
CY2017 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
41488000 | |
CY2019 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
-3750000 | |
CY2018 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
4347000 | |
CY2017 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
5391000 | |
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 | |
CY2017 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
-1213000 | |
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 | |
CY2017 | us-gaap |
Deferred Federal State And Local Tax Expense Benefit
DeferredFederalStateAndLocalTaxExpenseBenefit
|
4178000 | |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
37418000 | |
CY2018 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
35773000 | |
CY2017 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
45666000 | |
CY2017 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
2838000 | |
CY2019 | us-gaap |
Income Tax Reconciliation Change In Deferred Tax Assets Valuation Allowance
IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
-279000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Net
DeferredTaxAssetsNet
|
61557000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Net
DeferredTaxAssetsNet
|
31647000 | |
CY2018 | us-gaap |
Income Tax Reconciliation Change In Deferred Tax Assets Valuation Allowance
IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
-2852000 | |
CY2017 | us-gaap |
Income Tax Reconciliation Change In Deferred Tax Assets Valuation Allowance
IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
91000 | |
CY2019 | us-gaap |
Income Tax Reconciliation Tax Contingencies
IncomeTaxReconciliationTaxContingencies
|
7338000 | |
CY2018 | us-gaap |
Income Tax Reconciliation Tax Contingencies
IncomeTaxReconciliationTaxContingencies
|
-15000 | |
CY2017 | us-gaap |
Income Tax Reconciliation Tax Contingencies
IncomeTaxReconciliationTaxContingencies
|
153000 | |
CY2019 | us-gaap |
Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
|
2180000 | |
CY2018 | us-gaap |
Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
|
1926000 | |
CY2017 | us-gaap |
Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
|
1134000 | |
CY2019 | us-gaap |
Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
|
4569000 | |
CY2018 | us-gaap |
Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
|
2726000 | |
CY2019 | fix |
Income Tax Reconciliation Section179d Deduction
IncomeTaxReconciliationSection179dDeduction
|
5126000 | |
CY2018 | fix |
Income Tax Reconciliation Net Operating Loss Carryforward
IncomeTaxReconciliationNetOperatingLossCarryforward
|
2225000 | |
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 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Amount
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount
|
-1320000 | |
CY2017 | us-gaap |
Income Tax Reconciliation Deductions Qualified Production Activities
IncomeTaxReconciliationDeductionsQualifiedProductionActivities
|
2112000 | |
CY2018Q1 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.21 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Cuts And Jobs Act Of2017 Amount
EffectiveIncomeTaxRateReconciliationTaxCutsAndJobsActOf2017Amount
|
9478000 | |
CY2019 | us-gaap |
Income Tax Reconciliation Other Reconciling Items
IncomeTaxReconciliationOtherReconcilingItems
|
78000 | |
CY2018 | us-gaap |
Income Tax Reconciliation Other Reconciling Items
IncomeTaxReconciliationOtherReconcilingItems
|
-184000 | |
CY2017 | us-gaap |
Income Tax Reconciliation Other Reconciling Items
IncomeTaxReconciliationOtherReconcilingItems
|
76000 | |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
37418000 | |
CY2018 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
35773000 | |
CY2017 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
45666000 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Cuts And Jobs Act Of2017 Amount
EffectiveIncomeTaxRateReconciliationTaxCutsAndJobsActOf2017Amount
|
9500000 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.21 | |
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 | |
CY2018 | fix |
Income Tax Reconciliation Net Operating Loss Carryforward
IncomeTaxReconciliationNetOperatingLossCarryforward
|
2200000 | |
CY2019 | fix |
Income Tax Reconciliation Section179d Deduction Net Of Tax Contingencies
IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies
|
2200000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
|
1660000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
|
1445000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
|
2561000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
|
2538000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
|
25569000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
|
19449000 | |
CY2019Q4 | fix |
Deferred Tax Assets Lease Liability
DeferredTaxAssetsLeaseLiability
|
20873000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
|
2750000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
|
3242000 | |
CY2019Q4 | fix |
Deferred Tax Assets Intangible Assets Excluding Goodwill
DeferredTaxAssetsIntangibleAssetsExcludingGoodwill
|
7988000 | |
CY2018Q4 | fix |
Deferred Tax Assets Intangible Assets Excluding Goodwill
DeferredTaxAssetsIntangibleAssetsExcludingGoodwill
|
5071000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Other
DeferredTaxAssetsOther
|
525000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Other
DeferredTaxAssetsOther
|
550000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
61926000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
32295000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
369000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
648000 | |
CY2019Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
41059000 | |
CY2018Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
15400000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
|
20498000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
|
16247000 | |
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 | |
CY2017Q4 | us-gaap |
Unrecognized Tax Benefits Income Tax Penalties And Interest Accrued
UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
|
700000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
11286000 | |
CY2018Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
10488000 | |
CY2019Q4 | fix |
Deferred Tax Liabilities Lease Right Of Use Asset
DeferredTaxLiabilitiesLeaseRightOfUseAsset
|
20873000 | |
CY2019Q4 | fix |
Deferred Tax Liabilities Long Term Contracts
DeferredTaxLiabilitiesLongTermContracts
|
876000 | |
CY2018Q4 | fix |
Deferred Tax Liabilities Long Term Contracts
DeferredTaxLiabilitiesLongTermContracts
|
688000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Goodwill
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
|
6020000 | |
CY2018Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Goodwill
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
|
3864000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Other
DeferredTaxLiabilitiesOther
|
2004000 | |
CY2018Q4 | us-gaap |
Deferred Tax Liabilities Other
DeferredTaxLiabilitiesOther
|
360000 | |
CY2019Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
21923000 | |
CY2018Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
17634000 | |
CY2019Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
1425000 | |
CY2018Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
1387000 | |
CY2018Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
2966000 | |
CY2017Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
8929000 | |
CY2016Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
240000 | |
CY2017 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Current Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
|
8689000 | |
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 | |
CY2019Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
10199000 | |
CY2018Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
2966000 | |
CY2017Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
8929000 | |
CY2019Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
10200000 | |
CY2018Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
3000000.0 | |
CY2017Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
8900000 | |
CY2019 | fix |
Defined Contribution Plan Maximum Annual Contribution Per Employee By Employer Percent
DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent
|
0.025 | |
CY2019 | us-gaap |
Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
|
14200000 | |
CY2018 | us-gaap |
Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
|
10800000 | |
CY2017 | us-gaap |
Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
|
7800000 | |
CY2019 | fix |
Defined Contribution Plan Amount Payable
DefinedContributionPlanAmountPayable
|
300000 | |
CY2018 | fix |
Defined Contribution Plan Amount Payable
DefinedContributionPlanAmountPayable
|
200000 | |
CY2019 | fix |
Multi Employer Pension Plan Number Of Employees Who Are Union Members
MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers
|
7 | |
CY2018 | fix |
Multi Employer Pension Plan Number Of Employees Who Are Union Members
MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers
|
6 | |
CY2017 | us-gaap |
Multiemployer Plans Plan Contributions1
MultiemployerPlansPlanContributions1
|
0 | |
CY2018 | us-gaap |
Multiemployer Plans Plan Contributions1
MultiemployerPlansPlanContributions1
|
0 | |
CY2019 | us-gaap |
Multiemployer Plans Plan Contributions1
MultiemployerPlansPlanContributions1
|
0 | |
CY2019 | fix |
Defined Benefit Plan Period In Which Certain Individuals Are Entitled To Fixed Annual Payments
DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments
|
P15Y | |
CY2019 | fix |
Defined Benefit Plan Period In Which Certain Individuals Are Entitled To Fixed Annual Payments
DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments
|
P15Y | |
CY2019 | fix |
Defined Benefit Plan Maximum Age In Which Certain Individuals Are Entitled To Fixed Annual Payments
DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments
|
P65Y | |
CY2019 | fix |
Defined Benefit Plan Maximum Age In Which Certain Individuals Are Entitled To Fixed Annual Payments
DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments
|
P65Y | |
CY2019 | fix |
Defined Benefit Plan Period Portion Of Benefits Vesting After Ten Years Of Completed Service
DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService
|
0.50 | |
CY2019 | fix |
Defined Benefit Plan Period Of Completed Service Over Which50 Percent Of Benefits Are Vested
DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested
|
P10Y | |
CY2019 | fix |
Defined Benefit Plan Period Portion Of Benefits Vesting After Fifteen Years Of Completed Service
DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService
|
0.75 | |
CY2019 | fix |
Defined Benefit Plan Period Of Completed Service Over Which75 Percent Of Benefits Are Vested
DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested
|
P15Y | |
CY2019 | fix |
Defined Benefit Plan Period Of Service Over Which Benefits Are Fully Vested
DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested
|
P20Y | |
CY2019Q4 | us-gaap |
Pension And Other Postretirement Defined Benefit Plans Liabilities Noncurrent
PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent
|
4100000 | |
CY2018Q4 | us-gaap |
Pension And Other Postretirement Defined Benefit Plans Liabilities Noncurrent
PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent
|
4300000 | |
CY2019Q4 | fix |
Self Insurance Amount Of Loss Fully Insured Above Deductible Coverage Amount
SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount
|
125000000.0 | |
CY2019Q4 | fix |
Self Insurance Aggregate Loss Insurance Covered Amount
SelfInsuranceAggregateLossInsuranceCoveredAmount
|
125000000.0 | |
CY2019Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
36658000 | |
CY2018Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
36894000 | |
CY2017Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
37187000 | |
CY2019 | fix |
Effect Of Using Weighted Average Common Shares Outstanding
EffectOfUsingWeightedAverageCommonSharesOutstanding
|
196000 | |
CY2018 | fix |
Effect Of Using Weighted Average Common Shares Outstanding
EffectOfUsingWeightedAverageCommonSharesOutstanding
|
308000 | |
CY2017 | fix |
Effect Of Using Weighted Average Common Shares Outstanding
EffectOfUsingWeightedAverageCommonSharesOutstanding
|
52000 | |
CY2019 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
36854000 | |
CY2018 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
37202000 | |
CY2017 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
37239000 | |
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 | |
CY2017 | us-gaap |
Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
|
316000 | |
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 | |
CY2017 | us-gaap |
Incremental Common Shares Attributable To Contingently Issuable Shares
IncrementalCommonSharesAttributableToContingentlyIssuableShares
|
117000 | |
CY2019 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
37131000 | |
CY2018 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
37592000 | |
CY2017 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
37672000 | |
CY2019 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
5900000 | |
CY2018 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
7200000 | |
CY2017 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
6400000 | |
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 | |
CY2017 | us-gaap |
Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
|
2400000 | |
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 | |
CY2018 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P5Y3M18D | |
CY2017 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P5Y3M18D | |
CY2019 | us-gaap |
Number Of Reportable Segments
NumberOfReportableSegments
|
2 | |
CY2019 | us-gaap |
Number Of Reportable Segments
NumberOfReportableSegments
|
2 | |
CY2019 | us-gaap |
Number Of Reportable Segments
NumberOfReportableSegments
|
2 | |
CY2019 | us-gaap |
Number Of Reportable Segments
NumberOfReportableSegments
|
2 | |
CY2019 | us-gaap |
Number Of Reportable Segments
NumberOfReportableSegments
|
2 | |
CY2019Q4 | us-gaap |
Assets
Assets
|
1505012000 | |
CY2018Q4 | us-gaap |
Assets
Assets
|
1062564000 | |
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 | |
CY2017 | us-gaap |
Revenues
Revenues
|
1787922000 | |
CY2017 | us-gaap |
Gross Profit
GrossProfit
|
366281000 | |
CY2017 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
35467000 | |
CY2019Q1 | us-gaap |
Revenues
Revenues
|
538473000 | |
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 | |
CY2018Q1 | us-gaap |
Revenues
Revenues
|
464941000 | |
CY2018Q2 | us-gaap |
Revenues
Revenues
|
535043000 | |
CY2018Q3 | us-gaap |
Revenues
Revenues
|
594536000 | |
CY2018Q4 | us-gaap |
Revenues
Revenues
|
588359000 | |
CY2018Q1 | us-gaap |
Gross Profit
GrossProfit
|
89053000 | |
CY2018Q2 | us-gaap |
Gross Profit
GrossProfit
|
111183000 | |
CY2018Q3 | us-gaap |
Gross Profit
GrossProfit
|
127868000 | |
CY2018Q4 | us-gaap |
Gross Profit
GrossProfit
|
118175000 | |
CY2018Q1 | us-gaap |
Net Income Loss
NetIncomeLoss
|
16659000 | |
CY2018Q2 | us-gaap |
Net Income Loss
NetIncomeLoss
|
32547000 | |
CY2018Q3 | us-gaap |
Net Income Loss
NetIncomeLoss
|
38541000 | |
CY2018Q4 | us-gaap |
Net Income Loss
NetIncomeLoss
|
25156000 | |
CY2018Q1 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.45 | |
CY2018Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.87 | |
CY2018Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.03 | |
CY2018Q4 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.68 | |
CY2018Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.44 | |
CY2018Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.87 | |
CY2018Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.02 | |
CY2018Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.67 | |
CY2019Q4 | us-gaap |
Gain On Business Interruption Insurance Recovery
GainOnBusinessInterruptionInsuranceRecovery
|
4800000 |