2020 Q4 Form 10-K Financial Statement

#000155837021001466 Filed on February 23, 2021

View on sec.gov

Income Statement

Concept 2020 Q4 2019 Q4 2019 Q3
Revenue $721.5M $662.3M $682.3M
YoY Change 8.93% 3.57% 5.41%
Cost Of Revenue $523.5M $491.0M $503.0M
YoY Change 6.62% 2.02% 3.62%
Gross Profit $198.0M $171.3M $179.3M
YoY Change 15.59% 8.27% 10.79%
Gross Profit Margin 27.45% 25.87% 26.28%
Selling, General & Admin $94.40M $94.90M $98.89M
YoY Change -0.53% 1.93% 3.39%
% of Gross Profit 47.67% 55.39% 55.14%
Research & Development
YoY Change
% of Gross Profit
Depreciation & Amortization $14.90M $13.70M $13.50M
YoY Change 8.76% 11.38% 13.45%
% of Gross Profit 7.52% 8.0% 7.53%
Operating Expenses $94.40M $94.90M $98.89M
YoY Change -0.53% 1.93% 3.39%
Operating Profit $103.1M $76.42M $80.45M
YoY Change 34.88% 17.28% 21.49%
Interest Expense -$7.700M -$9.100M $9.507M
YoY Change -15.38% -6.19% 1.34%
% of Operating Profit -7.47% -11.91% 11.82%
Other Income/Expense, Net $100.0K $600.0K -$8.854M
YoY Change -83.33% 100.0% -3.79%
Pretax Income $95.40M $67.90M $71.59M
YoY Change 40.5% 21.68% 25.57%
Income Tax $24.70M $21.90M $16.62M
% Of Pretax Income 25.89% 32.25% 23.21%
Net Earnings $70.76M $45.99M $54.98M
YoY Change 53.87% 19.28% 28.88%
Net Earnings / Revenue 9.81% 6.94% 8.06%
Basic Earnings Per Share $2.16 $1.38 $1.63
Diluted Earnings Per Share $2.13 $1.36 $1.60
COMMON SHARES
Basic Shares Outstanding 33.02M 33.95M 33.79M
Diluted Shares Outstanding 34.37M

Balance Sheet

Concept 2020 Q4 2019 Q4 2019 Q3
SHORT-TERM ASSETS
Cash & Short-Term Investments $330.0M $184.8M $171.6M
YoY Change 78.57% 83.15% 83.53%
Cash & Equivalents $330.0M $184.8M $171.6M
Short-Term Investments
Other Short-Term Assets $17.70M $17.10M $16.50M
YoY Change 3.51% -38.27% -31.54%
Inventory $161.4M $149.1M $146.7M
Prepaid Expenses
Receivables $427.3M $428.8M $454.6M
Other Receivables $0.00 $0.00 $0.00
Total Short-Term Assets $936.4M $779.8M $789.4M
YoY Change 20.08% 10.66% 12.92%
LONG-TERM ASSETS
Property, Plant & Equipment $180.1M $178.1M $175.3M
YoY Change 1.11% 6.02% 5.14%
Goodwill $1.411B $1.368B $1.368B
YoY Change 3.13% 0.29%
Intangibles $190.6M $181.1M $185.8M
YoY Change 5.24% -9.16%
Long-Term Investments
YoY Change
Other Assets $11.32M $5.623M $4.760M
YoY Change 101.26% 6.21% -79.39%
Total Long-Term Assets $1.879B $1.824B $1.835B
YoY Change 3.0% 4.25% 4.38%
TOTAL ASSETS
Total Short-Term Assets $936.4M $779.8M $789.4M
Total Long-Term Assets $1.879B $1.824B $1.835B
Total Assets $2.815B $2.604B $2.624B
YoY Change 8.12% 6.09% 6.81%
SHORT-TERM LIABILITIES
YoY Change
Accounts Payable $331.7M $308.0M $300.1M
YoY Change 7.71% -1.66% -0.26%
Accrued Expenses $134.9M $118.4M $132.5M
YoY Change 13.94% 40.45% 14.03%
Deferred Revenue $6.542M $16.14M $16.69M
YoY Change -59.46% -19.16%
Short-Term Debt $0.00 $0.00 $0.00
YoY Change
Long-Term Debt Due $23.33M $34.27M $33.26M
YoY Change -31.94% 27.63% 42.15%
Total Short-Term Liabilities $496.5M $476.8M $482.5M
YoY Change 4.14% 7.31% 9.52%
LONG-TERM LIABILITIES
Long-Term Debt $683.4M $698.0M $702.0M
YoY Change -2.09% -2.6% -2.29%
Other Long-Term Liabilities $13.64M $1.487M $1.167M
YoY Change 817.42% -21.94% -97.36%
Total Long-Term Liabilities $697.0M $699.4M $703.1M
YoY Change -0.34% -2.66% -7.8%
TOTAL LIABILITIES
Total Short-Term Liabilities $496.5M $476.8M $482.5M
Total Long-Term Liabilities $697.0M $699.4M $703.1M
Total Liabilities $1.466B $1.451B $1.459B
YoY Change 1.06% 4.97% 6.43%
SHAREHOLDERS EQUITY
Retained Earnings $876.7M $632.9M $586.9M
YoY Change 38.52% 43.22%
Common Stock $858.8M $850.0M $857.1M
YoY Change 1.03% 0.38%
Preferred Stock
YoY Change
Treasury Stock (at cost) $386.7M $330.0M $278.8M
YoY Change 17.17% 52.36%
Treasury Stock Shares $6.011M $5.395M $4.913M
Shareholders Equity $1.349B $1.153B $1.165B
YoY Change
Total Liabilities & Shareholders Equity $2.815B $2.604B $2.624B
YoY Change 8.12% 6.09% 6.81%

Cashflow Statement

Concept 2020 Q4 2019 Q4 2019 Q3
OPERATING ACTIVITIES
Net Income $70.76M $45.99M $54.98M
YoY Change 53.87% 19.28% 28.88%
Depreciation, Depletion And Amortization $14.90M $13.70M $13.50M
YoY Change 8.76% 11.38% 13.45%
Cash From Operating Activities $102.2M $89.00M $86.50M
YoY Change 14.83% 25.0% 58.42%
INVESTING ACTIVITIES
Capital Expenditures -$13.70M -$11.40M -$12.10M
YoY Change 20.18% 12.87% -18.79%
Acquisitions
YoY Change
Other Investing Activities -$61.80M -$400.0K -$6.200M
YoY Change 15350.0% -150.0% 313.33%
Cash From Investing Activities -$75.60M -$11.80M -$18.30M
YoY Change 540.68% 26.88% 11.59%
FINANCING ACTIVITIES
Cash Dividend Paid
YoY Change
Common Stock Issuance & Retirement, Net
YoY Change
Debt Paid & Issued, Net
YoY Change
Cash From Financing Activities -11.90M -64.00M -38.40M
YoY Change -81.41% 17.86% 265.71%
NET CHANGE
Cash From Operating Activities 102.2M 89.00M 86.50M
Cash From Investing Activities -75.60M -11.80M -18.30M
Cash From Financing Activities -11.90M -64.00M -38.40M
Net Change In Cash 14.70M 13.20M 29.80M
YoY Change 11.36% 73.68% 7.58%
FREE CASH FLOW
Cash From Operating Activities $102.2M $89.00M $86.50M
Capital Expenditures -$13.70M -$11.40M -$12.10M
Free Cash Flow $115.9M $100.4M $98.60M
YoY Change 15.44% 23.49% 41.87%

Facts In Submission

Frame Concept Type Concept / XBRL Key Value Unit
CY2018 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
34921318
CY2020Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2019Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2020 dei Entity Central Index Key
EntityCentralIndexKey
0001633931
CY2020 dei Current Fiscal Year End Date
CurrentFiscalYearEndDate
--12-31
CY2019Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
184807000
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
5278000
CY2020 dei Document Fiscal Year Focus
DocumentFiscalYearFocus
2020
CY2020 dei Document Fiscal Period Focus
DocumentFiscalPeriodFocus
FY
CY2020 dei Amendment Flag
AmendmentFlag
false
CY2019Q4 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2020Q4 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2020Q4 us-gaap Preferred Stock Value
PreferredStockValue
CY2019Q4 us-gaap Preferred Stock Value
PreferredStockValue
CY2020 dei Document Type
DocumentType
10-K
CY2020 dei Document Annual Report
DocumentAnnualReport
true
CY2020 dei Document Period End Date
DocumentPeriodEndDate
2020-12-31
CY2020 dei Document Transition Report
DocumentTransitionReport
false
CY2020 dei Entity File Number
EntityFileNumber
001-36870
CY2020 dei Entity Registrant Name
EntityRegistrantName
TopBuild Corp
CY2020 dei Entity Incorporation State Country Code
EntityIncorporationStateCountryCode
DE
CY2020 dei Entity Tax Identification Number
EntityTaxIdentificationNumber
47-3096382
CY2020 dei Entity Address Address Line1
EntityAddressAddressLine1
475 North Williamson Boulevard
CY2020 dei Entity Address City Or Town
EntityAddressCityOrTown
Daytona Beach
CY2020 dei Entity Address State Or Province
EntityAddressStateOrProvince
FL
CY2020 dei Entity Address Postal Zip Code
EntityAddressPostalZipCode
32114
CY2020 dei City Area Code
CityAreaCode
386
CY2020 dei Local Phone Number
LocalPhoneNumber
304-2200
CY2020 dei Security12b Title
Security12bTitle
Common stock, par value $0.01 per share
CY2020 dei Trading Symbol
TradingSymbol
BLD
CY2020 dei Security Exchange Name
SecurityExchangeName
NYSE
CY2020 dei Entity Well Known Seasoned Issuer
EntityWellKnownSeasonedIssuer
Yes
CY2020 dei Entity Voluntary Filers
EntityVoluntaryFilers
No
CY2020 dei Entity Current Reporting Status
EntityCurrentReportingStatus
Yes
CY2020 dei Entity Interactive Data Current
EntityInteractiveDataCurrent
Yes
CY2020 dei Entity Filer Category
EntityFilerCategory
Large Accelerated Filer
CY2020 dei Entity Small Business
EntitySmallBusiness
false
CY2020 dei Entity Emerging Growth Company
EntityEmergingGrowthCompany
false
CY2020 dei Icfr Auditor Attestation Flag
IcfrAuditorAttestationFlag
true
CY2020 dei Entity Shell Company
EntityShellCompany
false
CY2020Q2 dei Entity Public Float
EntityPublicFloat
3700000000
CY2021Q1 dei Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
33018535
CY2020Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
330007000
CY2019Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
184807000
CY2020Q4 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
6926000
CY2019Q4 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
4854000
CY2020Q4 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
427340000
CY2019Q4 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
428844000
CY2020Q4 us-gaap Inventory Net
InventoryNet
161369000
CY2019Q4 us-gaap Inventory Net
InventoryNet
149078000
CY2020Q4 us-gaap Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
17689000
CY2019Q4 us-gaap Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
17098000
CY2020Q4 us-gaap Assets Current
AssetsCurrent
936405000
CY2019Q4 us-gaap Assets Current
AssetsCurrent
779827000
CY2020Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
83490000
CY2019Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
87134000
CY2020 us-gaap Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
19242
CY2020 us-gaap Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
1438000
CY2020Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
180053000
CY2019Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
178080000
CY2020Q4 us-gaap Goodwill
Goodwill
1410685000
CY2019Q4 us-gaap Goodwill
Goodwill
1367918000
CY2020Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
190605000
CY2019Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
181122000
CY2020Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
2728000
CY2019Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
4259000
CY2020Q4 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
11317000
CY2019Q4 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
5623000
CY2020Q4 us-gaap Assets
Assets
2815283000
CY2019Q4 us-gaap Assets
Assets
2603963000
CY2020Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
331710000
CY2019Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
307970000
CY2020Q4 us-gaap Long Term Debt Current
LongTermDebtCurrent
23326000
CY2019Q4 us-gaap Long Term Debt Current
LongTermDebtCurrent
34272000
CY2020Q4 bld Accrued Liabilities And Employee Related Liabilities Current
AccruedLiabilitiesAndEmployeeRelatedLiabilitiesCurrent
107949000
CY2019Q4 bld Accrued Liabilities And Employee Related Liabilities Current
AccruedLiabilitiesAndEmployeeRelatedLiabilitiesCurrent
98418000
CY2020Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
33492000
CY2019Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
36094000
CY2020Q4 us-gaap Liabilities Current
LiabilitiesCurrent
496477000
CY2019Q4 us-gaap Liabilities Current
LiabilitiesCurrent
476754000
CY2020Q4 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
683396000
CY2019Q4 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
697955000
CY2020Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
168568000
CY2019Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
175263000
CY2020Q4 us-gaap Accrued Insurance Noncurrent
AccruedInsuranceNoncurrent
50657000
CY2019Q4 us-gaap Accrued Insurance Noncurrent
AccruedInsuranceNoncurrent
45605000
CY2020Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
53749000
CY2019Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
54010000
CY2020Q4 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
13642000
CY2019Q4 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
1487000
CY2020Q4 us-gaap Liabilities
Liabilities
1466489000
CY2019Q4 us-gaap Liabilities
Liabilities
1451074000
CY2019Q4 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.01
CY2020Q4 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.01
CY2019Q4 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
10000000
CY2020Q4 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
10000000
CY2019Q4 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2020Q4 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2019Q4 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.01
CY2020Q4 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.01
CY2019Q4 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
250000000
CY2020Q4 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
250000000
CY2020Q4 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
39029913
CY2020Q4 us-gaap Common Stock Shares Outstanding
CommonStockSharesOutstanding
33018925
CY2019Q4 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
38884530
CY2019Q4 us-gaap Common Stock Shares Outstanding
CommonStockSharesOutstanding
33489769
CY2020Q4 us-gaap Common Stock Value
CommonStockValue
389000
CY2019Q4 us-gaap Common Stock Value
CommonStockValue
388000
CY2020Q4 us-gaap Treasury Stock Shares
TreasuryStockShares
6010988
CY2019Q4 us-gaap Treasury Stock Shares
TreasuryStockShares
5394761
CY2020Q4 us-gaap Treasury Stock Value
TreasuryStockValue
386669000
CY2019Q4 us-gaap Treasury Stock Value
TreasuryStockValue
330018000
CY2020Q4 us-gaap Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
858414000
CY2019Q4 us-gaap Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
849657000
CY2020Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
876660000
CY2019Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
632862000
CY2020Q4 us-gaap Stockholders Equity
StockholdersEquity
1348794000
CY2019Q4 us-gaap Stockholders Equity
StockholdersEquity
1152889000
CY2020Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
2815283000
CY2019Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
2603963000
CY2020 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2718038000
CY2019 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2624121000
CY2018 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2384249000
CY2020 us-gaap Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
1971677000
CY2019 us-gaap Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
1942854000
CY2018 us-gaap Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
1808097000
CY2020 us-gaap Gross Profit
GrossProfit
746361000
CY2019 us-gaap Gross Profit
GrossProfit
681267000
CY2018 us-gaap Gross Profit
GrossProfit
576152000
CY2020 us-gaap Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
391315000
CY2019 us-gaap Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
391744000
CY2018 us-gaap Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
367199000
CY2020 us-gaap Operating Income Loss
OperatingIncomeLoss
355046000
CY2019 us-gaap Operating Income Loss
OperatingIncomeLoss
289523000
CY2018 us-gaap Operating Income Loss
OperatingIncomeLoss
208953000
CY2020 us-gaap Interest Expense
InterestExpense
32456000
CY2019 us-gaap Interest Expense
InterestExpense
37823000
CY2018 us-gaap Interest Expense
InterestExpense
28687000
CY2020 us-gaap Gains Losses On Extinguishment Of Debt
GainsLossesOnExtinguishmentOfDebt
-233000
CY2020 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
733000
CY2019 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
2078000
CY2018 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
558000
CY2020 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-31956000
CY2019 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-35745000
CY2018 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-28129000
CY2020 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
323090000
CY2019 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
253778000
CY2018 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
180824000
CY2020 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
76067000
CY2019 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
62783000
CY2018 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
46072000
CY2020 us-gaap Net Income Loss
NetIncomeLoss
247023000
CY2019 us-gaap Net Income Loss
NetIncomeLoss
190995000
CY2018 us-gaap Net Income Loss
NetIncomeLoss
134752000
CY2020 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
7.50
CY2019 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
5.65
CY2018 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
3.86
CY2020 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
7.42
CY2019 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
5.56
CY2018 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
3.78
CY2020 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
32917971
CY2019 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
33806104
CY2020 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
33299986
CY2019 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
34376555
CY2018 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
35613319
CY2020 us-gaap Net Income Loss
NetIncomeLoss
247023000
CY2019 us-gaap Net Income Loss
NetIncomeLoss
190995000
CY2018 us-gaap Net Income Loss
NetIncomeLoss
134752000
CY2020 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
62410000
CY2019 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
52700000
CY2018 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
39419000
CY2020 us-gaap Share Based Compensation
ShareBasedCompensation
14752000
CY2019 us-gaap Share Based Compensation
ShareBasedCompensation
13658000
CY2018 us-gaap Share Based Compensation
ShareBasedCompensation
11317000
CY2020 us-gaap Gains Losses On Extinguishment Of Debt
GainsLossesOnExtinguishmentOfDebt
-233000
CY2020 us-gaap Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
88000
CY2019 us-gaap Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
-1399000
CY2018 us-gaap Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
-1204000
CY2020 us-gaap Amortization Of Financing Costs
AmortizationOfFinancingCosts
1491000
CY2019 us-gaap Amortization Of Financing Costs
AmortizationOfFinancingCosts
1558000
CY2018 us-gaap Amortization Of Financing Costs
AmortizationOfFinancingCosts
1201000
CY2020 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
6270000
CY2019 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
7065000
CY2018 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
3240000
CY2020 us-gaap Inventory Write Down
InventoryWriteDown
2512000
CY2019 us-gaap Inventory Write Down
InventoryWriteDown
2622000
CY2018 us-gaap Inventory Write Down
InventoryWriteDown
2187000
CY2020 us-gaap Increase Decrease In Deferred Income Taxes
IncreaseDecreaseInDeferredIncomeTaxes
4070000
CY2019 us-gaap Increase Decrease In Deferred Income Taxes
IncreaseDecreaseInDeferredIncomeTaxes
-8888000
CY2018 us-gaap Increase Decrease In Deferred Income Taxes
IncreaseDecreaseInDeferredIncomeTaxes
-12936000
CY2020 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
-2612000
CY2019 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
27146000
CY2018 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
35522000
CY2020 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
11843000
CY2019 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
-17433000
CY2018 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
23297000
CY2020 us-gaap Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
460000
CY2019 us-gaap Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
-9361000
CY2018 us-gaap Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
8360000
CY2020 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
16844000
CY2019 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
-5124000
CY2018 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
29687000
CY2020 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
20545000
CY2019 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
-2690000
CY2018 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
-660000
CY2020 us-gaap Payment For Contingent Consideration Liability Operating Activities
PaymentForContingentConsiderationLiabilityOperatingActivities
413000
CY2020 us-gaap Other Operating Activities Cash Flow Statement
OtherOperatingActivitiesCashFlowStatement
66000
CY2019 us-gaap Other Operating Activities Cash Flow Statement
OtherOperatingActivitiesCashFlowStatement
1058000
CY2018 us-gaap Other Operating Activities Cash Flow Statement
OtherOperatingActivitiesCashFlowStatement
-932000
CY2020 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
357884000
CY2019 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
271777000
CY2018 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
52504000
CY2018 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
44408000
CY2018 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
167172000
CY2020 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
40938000
CY2019 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
45536000
CY2020 us-gaap Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
83408000
CY2019 us-gaap Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
6952000
CY2018 us-gaap Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
500202000
CY2020 us-gaap Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
2463000
CY2019 us-gaap Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
2321000
CY2018 us-gaap Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
849000
CY2019 us-gaap Payments For Proceeds From Other Investing Activities
PaymentsForProceedsFromOtherInvestingActivities
-25000
CY2018 us-gaap Payments For Proceeds From Other Investing Activities
PaymentsForProceedsFromOtherInvestingActivities
-38000
CY2020 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-121883000
CY2019 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-50142000
CY2018 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-551819000
CY2020 us-gaap Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
300000000
CY2019 us-gaap Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
14989000
CY2018 us-gaap Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
526604000
CY2020 us-gaap Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
324948000
CY2019 us-gaap Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
27793000
CY2018 us-gaap Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
18399000
CY2020 us-gaap Payments Of Debt Issuance Costs
PaymentsOfDebtIssuanceCosts
2280000
CY2018 us-gaap Payments Of Debt Issuance Costs
PaymentsOfDebtIssuanceCosts
7819000
CY2018 us-gaap Proceeds From Lines Of Credit
ProceedsFromLinesOfCredit
90000000
CY2018 us-gaap Repayments Of Lines Of Credit
RepaymentsOfLinesOfCredit
90000000
CY2020 us-gaap Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
14932000
CY2019 us-gaap Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
12951000
CY2018 us-gaap Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
5465000
CY2020 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
1438000
CY2020 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
49151000
CY2019 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
110911000
CY2018 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
65025000
CY2020 us-gaap Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
928000
CY2019 us-gaap Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
1091000
CY2018 us-gaap Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
841000
CY2020 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
-90801000
CY2019 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
-137757000
CY2018 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
429055000
CY2020 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
145200000
CY2019 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
83878000
CY2018Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
100929000
CY2017Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
56521000
CY2020Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
330007000
CY2019Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
184807000
CY2018Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
100929000
CY2020 us-gaap Interest Paid Net
InterestPaidNet
30896000
CY2019 us-gaap Interest Paid Net
InterestPaidNet
36244000
CY2018 us-gaap Interest Paid Net
InterestPaidNet
23733000
CY2020 us-gaap Income Taxes Paid
IncomeTaxesPaid
77689000
CY2019 us-gaap Income Taxes Paid
IncomeTaxesPaid
43310000
CY2018 us-gaap Income Taxes Paid
IncomeTaxesPaid
39010000
CY2020 us-gaap Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
38646000
CY2019 us-gaap Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
128838000
CY2020 us-gaap Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
645000
CY2019 us-gaap Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
542000
CY2018 us-gaap Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
860000
CY2017Q4 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.01
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
CY2020Q4 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.01
CY2017Q4 us-gaap Stockholders Equity
StockholdersEquity
996519000
CY2018 us-gaap Net Income Loss
NetIncomeLoss
134752000
CY2018 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
11317000
CY2018 us-gaap Stock Issued During Period Shares Restricted Stock Award Gross
StockIssuedDuringPeriodSharesRestrictedStockAwardGross
90760
CY2018 bld Treasury Stock Shares Acquired Cost Method Share Repurchase Program
TreasuryStockSharesAcquiredCostMethodShareRepurchaseProgram
252946
CY2018 bld Treasury Stock Value Acquired Cost Method Share Repurchase Program
TreasuryStockValueAcquiredCostMethodShareRepurchaseProgram
15000000
CY2018 bld Treasury Stock Shares Acquired Cost Method Settlement Of Accelerated Share Repurchase Program
TreasuryStockSharesAcquiredCostMethodSettlementOfAcceleratedShareRepurchaseProgram
13657
CY2018 bld Treasury Stock Shares Acquired Cost Method Accelerated Share Repurchase Program
TreasuryStockSharesAcquiredCostMethodAcceleratedShareRepurchaseProgram
796925
CY2018 bld Treasury Stock Value Acquired Cost Method Accelerated Share Repurchase Program
TreasuryStockValueAcquiredCostMethodAcceleratedShareRepurchaseProgram
50025000
CY2018 us-gaap Shares Paid For Tax Withholding For Share Based Compensation
SharesPaidForTaxWithholdingForShareBasedCompensation
98056
CY2018 us-gaap Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
5465000
CY2018Q4 us-gaap Stockholders Equity
StockholdersEquity
1072098000
CY2019 us-gaap Net Income Loss
NetIncomeLoss
190995000
CY2019 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
13658000
CY2019 us-gaap Stock Issued During Period Shares Restricted Stock Award Gross
StockIssuedDuringPeriodSharesRestrictedStockAwardGross
129870
CY2019 bld Treasury Stock Shares Acquired Cost Method Settlement Of Accelerated Share Repurchase Program
TreasuryStockSharesAcquiredCostMethodSettlementOfAcceleratedShareRepurchaseProgram
176327
CY2019 bld Treasury Stock Shares Acquired Cost Method Share Repurchase Program
TreasuryStockSharesAcquiredCostMethodShareRepurchaseProgram
722943
CY2019 bld Treasury Stock Value Acquired Cost Method Share Repurchase Program
TreasuryStockValueAcquiredCostMethodShareRepurchaseProgram
60886000
CY2019 bld Treasury Stock Shares Acquired Cost Method Accelerated Share Repurchase Program
TreasuryStockSharesAcquiredCostMethodAcceleratedShareRepurchaseProgram
392501
CY2019 bld Treasury Stock Value Acquired Cost Method Accelerated Share Repurchase Program
TreasuryStockValueAcquiredCostMethodAcceleratedShareRepurchaseProgram
50025000
CY2019 us-gaap Shares Paid For Tax Withholding For Share Based Compensation
SharesPaidForTaxWithholdingForShareBasedCompensation
228916
CY2019 us-gaap Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
12951000
CY2019Q4 us-gaap Stockholders Equity
StockholdersEquity
1152889000
CY2020 us-gaap Net Income Loss
NetIncomeLoss
247023000
CY2020 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
14752000
CY2020 us-gaap Stock Issued During Period Shares Restricted Stock Award Gross
StockIssuedDuringPeriodSharesRestrictedStockAwardGross
76041
CY2020 bld Treasury Stock Shares Acquired Cost Method Share Repurchase Program
TreasuryStockSharesAcquiredCostMethodShareRepurchaseProgram
542772
CY2020 bld Treasury Stock Value Acquired Cost Method Share Repurchase Program
TreasuryStockValueAcquiredCostMethodShareRepurchaseProgram
49151000
CY2020Q4 bld Deferred Tax Assets Lease Liability
DeferredTaxAssetsLeaseLiability
8474000
CY2020 bld Treasury Stock Shares Acquired Cost Method Settlement Of Accelerated Share Repurchase Program
TreasuryStockSharesAcquiredCostMethodSettlementOfAcceleratedShareRepurchaseProgram
73455
CY2020 us-gaap Shares Paid For Tax Withholding For Share Based Compensation
SharesPaidForTaxWithholdingForShareBasedCompensation
142822
CY2020 us-gaap Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
14932000
CY2020Q4 us-gaap Stockholders Equity
StockholdersEquity
1348794000
CY2020 bld Percentage Of Capital Distribution
PercentageOfCapitalDistribution
1
CY2020 us-gaap Number Of Reportable Segments
NumberOfReportableSegments
2
CY2020 us-gaap Use Of Estimates
UseOfEstimates
<p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Use of Estimates and Assumptions in the Preparation of Financial Statements.</span>  The preparation of our consolidated financial statements in conformity with GAAP requires us to make certain estimates and assumptions that affect the reported amounts of assets and liabilities, and disclosure of any contingent assets and liabilities, at the date of the financial statements, and the reported amounts of sales and expenses during the reporting period.  Actual results may differ from these estimates and assumptions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">​</span></p>
CY2020 us-gaap Advertising Expense
AdvertisingExpense
1400000
CY2019 us-gaap Advertising Expense
AdvertisingExpense
1700000
CY2018 us-gaap Advertising Expense
AdvertisingExpense
1700000
CY2020Q4 us-gaap Insurance Settlements Receivable Noncurrent
InsuranceSettlementsReceivableNoncurrent
11200000
CY2019Q4 us-gaap Insurance Settlements Receivable Noncurrent
InsuranceSettlementsReceivableNoncurrent
5300000
CY2020 us-gaap Operating Lease Cost
OperatingLeaseCost
47731000
CY2019 us-gaap Operating Lease Cost
OperatingLeaseCost
52194000
CY2020 us-gaap Short Term Lease Cost
ShortTermLeaseCost
12397000
CY2019 us-gaap Short Term Lease Cost
ShortTermLeaseCost
12552000
CY2020 us-gaap Sublease Income
SubleaseIncome
727000
CY2019 us-gaap Sublease Income
SubleaseIncome
574000
CY2020 us-gaap Lease Cost
LeaseCost
59401000
CY2019 us-gaap Lease Cost
LeaseCost
64172000
CY2020 us-gaap Variable Lease Cost
VariableLeaseCost
6177000
CY2019 us-gaap Variable Lease Cost
VariableLeaseCost
6985000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
36801000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
25046000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
14575000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
8757000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
4560000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
4054000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
93793000
CY2020Q4 us-gaap Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
6552000
CY2020Q4 us-gaap Operating Lease Liability
OperatingLeaseLiability
87241000
CY2020Q4 us-gaap Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
P3Y4M24D
CY2020Q4 us-gaap Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
0.038
CY2020 us-gaap Operating Lease Payments
OperatingLeasePayments
41773000
CY2019 us-gaap Operating Lease Payments
OperatingLeasePayments
44801000
CY2020 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2718038000
CY2019 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2624121000
CY2018 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2384249000
CY2020 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2718038000
CY2019 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2624121000
CY2018 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2384249000
CY2019Q4 bld Deferred Tax Assets Lease Liability
DeferredTaxAssetsLeaseLiability
9167000
CY2020 us-gaap Goodwill Period Increase Decrease
GoodwillPeriodIncreaseDecrease
42767000
CY2020Q4 us-gaap Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
262300000
CY2020 us-gaap Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Explanation
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionExplanation
over the next 18 months
CY2020Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
447661000
CY2019Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
421057000
CY2020Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
267608000
CY2019Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
242977000
CY2020Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
180053000
CY2019Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
178080000
CY2020 us-gaap Depreciation
Depreciation
40500000
CY2019 us-gaap Depreciation
Depreciation
31900000
CY2018 us-gaap Depreciation
Depreciation
23700000
CY2020 us-gaap Number Of Reporting Units
NumberOfReportingUnits
2
CY2019Q4 us-gaap Goodwill Impairment Loss
GoodwillImpairmentLoss
0
CY2020Q4 us-gaap Goodwill Impairment Loss
GoodwillImpairmentLoss
0
CY2019Q4 us-gaap Goodwill Gross
GoodwillGross
2129939000
CY2020Q4 us-gaap Goodwill Gross
GoodwillGross
2172706000
CY2020Q4 us-gaap Goodwill Impaired Accumulated Impairment Loss
GoodwillImpairedAccumulatedImpairmentLoss
762021000
CY2020Q4 us-gaap Goodwill
Goodwill
1410685000
CY2018Q4 us-gaap Goodwill Gross
GoodwillGross
2126037000
CY2019 us-gaap Goodwill Period Increase Decrease
GoodwillPeriodIncreaseDecrease
3902000
CY2019Q4 us-gaap Goodwill Gross
GoodwillGross
2129939000
CY2019Q4 us-gaap Goodwill Impaired Accumulated Impairment Loss
GoodwillImpairedAccumulatedImpairmentLoss
762021000
CY2019Q4 us-gaap Goodwill
Goodwill
1367918000
CY2020Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
252751000
CY2019Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
221382000
CY2018Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
218882000
CY2020Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
62146000
CY2019Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
40260000
CY2018Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
19495000
CY2020Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
190605000
CY2019Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
181122000
CY2018Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
199387000
CY2020Q4 us-gaap Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
190605000
CY2019Q4 us-gaap Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
181122000
CY2018Q4 us-gaap Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
199387000
CY2020 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
21886000
CY2019 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
20765000
CY2018 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
15752000
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
23445000
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
22629000
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
21800000
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
21692000
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
21692000
CY2020Q4 bld Deferred Tax Assets Long Term Liabilities
DeferredTaxAssetsLongTermLiabilities
9712000
CY2020Q4 us-gaap Deferred Finance Costs Net
DeferredFinanceCostsNet
7479000
CY2019Q4 us-gaap Deferred Finance Costs Net
DeferredFinanceCostsNet
6923000
CY2020Q4 us-gaap Long Term Debt
LongTermDebt
706722000
CY2019Q4 us-gaap Long Term Debt
LongTermDebt
732227000
CY2020Q4 us-gaap Long Term Debt Current
LongTermDebtCurrent
23326000
CY2019Q4 us-gaap Long Term Debt Current
LongTermDebtCurrent
34272000
CY2020Q4 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
683396000
CY2019Q4 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
697955000
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Next Twelve Months
LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths
23333000
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Year Two
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo
29276000
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Year Three
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree
28837000
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Year Four
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour
30255000
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Year Five
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive
202500000
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal After Year Five
LongTermDebtMaturitiesRepaymentsOfPrincipalAfterYearFive
400000000
CY2020Q4 us-gaap Debt Instrument Carrying Amount
DebtInstrumentCarryingAmount
714201000
CY2020Q4 us-gaap Assets
Assets
2815283000
CY2019 us-gaap Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
6300000
CY2018 us-gaap Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
3200000
CY2020 bld Debt Instrument Covenant Net Leverage Ratio
DebtInstrumentCovenantNetLeverageRatio
3.50
CY2020 bld Debt Instrument Covenant Minimum Interest Coverage Ratio
DebtInstrumentCovenantMinimumInterestCoverageRatio
3.00
CY2018 bld Fair Value Assets And Liabilities Level1 Level2 And Level3 Transfers Amount
FairValueAssetsAndLiabilitiesLevel1Level2AndLevel3TransfersAmount
0
CY2019 bld Fair Value Assets And Liabilities Level1 Level2 And Level3 Transfers Amount
FairValueAssetsAndLiabilitiesLevel1Level2AndLevel3TransfersAmount
0
CY2020 bld Fair Value Assets And Liabilities Level1 Level2 And Level3 Transfers Amount
FairValueAssetsAndLiabilitiesLevel1Level2AndLevel3TransfersAmount
0
CY2020 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2718038000
CY2019 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2624121000
CY2018 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2384249000
CY2020 us-gaap Operating Income Loss
OperatingIncomeLoss
355046000
CY2019 us-gaap Operating Income Loss
OperatingIncomeLoss
289523000
CY2018 us-gaap Operating Income Loss
OperatingIncomeLoss
208953000
CY2020 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-31956000
CY2019 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-35745000
CY2018 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-28129000
CY2020 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
323090000
CY2019 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
253778000
CY2018 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
180824000
CY2020 us-gaap Property Plant And Equipment Additions
PropertyPlantAndEquipmentAdditions
44873000
CY2019 us-gaap Property Plant And Equipment Additions
PropertyPlantAndEquipmentAdditions
45498000
CY2018 us-gaap Property Plant And Equipment Additions
PropertyPlantAndEquipmentAdditions
87414000
CY2020 us-gaap Depreciation And Amortization
DepreciationAndAmortization
62410000
CY2019 us-gaap Depreciation And Amortization
DepreciationAndAmortization
52700000
CY2018 us-gaap Depreciation And Amortization
DepreciationAndAmortization
39419000
CY2020Q4 us-gaap Liability For Uncertain Tax Positions Current
LiabilityForUncertainTaxPositionsCurrent
0
CY2020 bld Retirement Plans Expense
RetirementPlansExpense
22005000
CY2019 bld Retirement Plans Expense
RetirementPlansExpense
23256000
CY2018 bld Retirement Plans Expense
RetirementPlansExpense
18819000
CY2019Q4 bld Deferred Tax Assets Long Term Lease Liability
DeferredTaxAssetsLongTermLeaseLiability
13645000
CY2019Q4 us-gaap Assets
Assets
2603963000
CY2020Q4 bld Accrued Salaries Wages And Commissions Current
AccruedSalariesWagesAndCommissionsCurrent
34584000
CY2019Q4 bld Accrued Salaries Wages And Commissions Current
AccruedSalariesWagesAndCommissionsCurrent
32154000
CY2020Q4 us-gaap Accrued Insurance Current
AccruedInsuranceCurrent
22007000
CY2019Q4 us-gaap Accrued Insurance Current
AccruedInsuranceCurrent
22506000
CY2020Q4 bld Accrued Employee Tax Related Liabilities Current
AccruedEmployeeTaxRelatedLiabilitiesCurrent
12603000
CY2019Q4 bld Accrued Employee Tax Related Liabilities Current
AccruedEmployeeTaxRelatedLiabilitiesCurrent
1546000
CY2020Q4 bld Accrued Sales And Property Taxes Current
AccruedSalesAndPropertyTaxesCurrent
6939000
CY2019Q4 bld Accrued Sales And Property Taxes Current
AccruedSalesAndPropertyTaxesCurrent
4941000
CY2020Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
6542000
CY2019Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
16139000
CY2020Q4 bld Accrued Customer Rebates Current
AccruedCustomerRebatesCurrent
6191000
CY2019Q4 bld Accrued Customer Rebates Current
AccruedCustomerRebatesCurrent
5816000
CY2020Q4 us-gaap Interest Payable Current
InterestPayableCurrent
3924000
CY2019Q4 us-gaap Interest Payable Current
InterestPayableCurrent
3966000
CY2020Q4 us-gaap Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
15159000
CY2019Q4 us-gaap Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
11350000
CY2020Q4 bld Accrued Liabilities And Employee Related Liabilities Current
AccruedLiabilitiesAndEmployeeRelatedLiabilitiesCurrent
107949000
CY2019Q4 bld Accrued Liabilities And Employee Related Liabilities Current
AccruedLiabilitiesAndEmployeeRelatedLiabilitiesCurrent
98418000
CY2020Q4 bld Fica Taxes Deferred Under Cares Act
FicaTaxesDeferredUnderCaresAct
12000000.0
CY2020 bld Number Of Regional Multiemployer Pension Plans In Which Entity Participates
NumberOfRegionalMultiemployerPensionPlansInWhichEntityParticipates
44
CY2020 us-gaap Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
10251000
CY2019 us-gaap Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
10015000
CY2018 us-gaap Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
7595000
CY2020 bld Multiemployer Retirement Plan Expense
MultiemployerRetirementPlanExpense
11754000
CY2019 bld Multiemployer Retirement Plan Expense
MultiemployerRetirementPlanExpense
13241000
CY2018 bld Multiemployer Retirement Plan Expense
MultiemployerRetirementPlanExpense
11224000
CY2020Q4 us-gaap Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
7577000
CY2019Q4 us-gaap Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
12803000
CY2020Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
59977000
CY2019Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
56866000
CY2020 bld Schedule Of Employer Contributions To Pension Trust Fund
ScheduleOfEmployerContributionsToPensionTrustFund
<p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100.41%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">Employer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:15.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">Identification</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:15.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">PPA Zone Status</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">Funding Plan</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">Contributions (in thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">Surcharge</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:justify;margin:0pt;"><b style="font-weight:bold;">Pension Fund</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">Number/Plan Number</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.01%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">Pending / Implemented</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">2018</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">Imposed</b></p></td></tr><tr><td style="background-color:#cceeff;vertical-align:middle;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:justify;margin:0pt;">NCT</p></td><td style="background-color:#cceeff;vertical-align:middle;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:middle;white-space:nowrap;width:17.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;">94-6050970/001</p></td><td style="background-color:#cceeff;vertical-align:middle;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:middle;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;">Red</p></td><td style="background-color:#cceeff;vertical-align:middle;white-space:nowrap;width:1.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:middle;width:7.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;">Red</p></td><td style="background-color:#cceeff;vertical-align:middle;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:middle;white-space:nowrap;width:18.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;">Yes</p></td><td style="background-color:#cceeff;vertical-align:middle;white-space:nowrap;width:0.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:middle;width:7.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:right;margin:0pt 3pt 0pt 0pt;">$2,710 </p></td><td style="background-color:#cceeff;vertical-align:middle;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:middle;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:right;margin:0pt 3pt 0pt 0pt;">$3,810 </p></td><td style="background-color:#cceeff;vertical-align:middle;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:middle;width:6.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:right;margin:0pt 3pt 0pt 0pt;">$3,319 </p></td><td style="background-color:#cceeff;vertical-align:middle;white-space:nowrap;width:0.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:middle;width:8.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;">No</p></td></tr></table>
CY2020Q4 bld Performance Bonds Outstanding
PerformanceBondsOutstanding
102534000
CY2019Q4 bld Performance Bonds Outstanding
PerformanceBondsOutstanding
87286000
CY2020Q4 bld License And Insurance Related And Other Bonds Outstanding
LicenseAndInsuranceRelatedAndOtherBondsOutstanding
27633000
CY2019Q4 bld License And Insurance Related And Other Bonds Outstanding
LicenseAndInsuranceRelatedAndOtherBondsOutstanding
25309000
CY2020Q4 bld Bonds Outstanding
BondsOutstanding
130167000
CY2019Q4 bld Bonds Outstanding
BondsOutstanding
112595000
CY2020 us-gaap Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
323090000
CY2019 us-gaap Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
253778000
CY2018 us-gaap Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
180824000
CY2020 us-gaap Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
66792000
CY2019 us-gaap Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
46320000
CY2018 us-gaap Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
25980000
CY2020 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
13345000
CY2019 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
7575000
CY2018 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
7156000
CY2020 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
-8087000
CY2019 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
-543000
CY2018 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
9939000
CY2020 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
4017000
CY2019 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
9431000
CY2018 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
2997000
CY2020 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
76067000
CY2019 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
62783000
CY2018 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
46072000
CY2020Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
2819000
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
1720000
CY2020Q4 us-gaap Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
2347000
CY2019Q4 us-gaap Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
1388000
CY2020Q4 us-gaap Deferred Tax Liabilities Leasing Arrangements
DeferredTaxLiabilitiesLeasingArrangements
21064000
CY2019Q4 us-gaap Deferred Tax Liabilities Leasing Arrangements
DeferredTaxLiabilitiesLeasingArrangements
22062000
CY2020Q4 us-gaap Deferred Tax Assets Other
DeferredTaxAssetsOther
3396000
CY2019Q4 us-gaap Deferred Tax Assets Other
DeferredTaxAssetsOther
2894000
CY2020Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
12119000
CY2020Q4 us-gaap Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
33111000
CY2019Q4 us-gaap Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
32103000
CY2019Q4 bld Deferred Tax Assets Long Term Liabilities
DeferredTaxAssetsLongTermLiabilities
9971000
CY2020Q4 bld Deferred Tax Assets Long Term Lease Liability
DeferredTaxAssetsLongTermLeaseLiability
13533000
CY2020Q4 us-gaap Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
169710000
CY2019Q4 us-gaap Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
172265000
CY2020Q4 us-gaap Deferred Tax Liabilities Other
DeferredTaxLiabilitiesOther
1932000
CY2019Q4 us-gaap Deferred Tax Liabilities Other
DeferredTaxLiabilitiesOther
1440000
CY2020Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
225817000
CY2019Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
227870000
CY2020Q4 us-gaap Deferred Tax Liabilities
DeferredTaxLiabilities
165840000
CY2019Q4 us-gaap Deferred Tax Liabilities
DeferredTaxLiabilities
171004000
CY2019Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
0
CY2020Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
0
CY2020Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
0
CY2020Q4 us-gaap Deferred Tax Liabilities
DeferredTaxLiabilities
165800000
CY2020Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
2700000
CY2020Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
168600000
CY2019Q4 us-gaap Deferred Tax Liabilities
DeferredTaxLiabilities
171000000.0
CY2019Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
4300000
CY2019Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
175300000
CY2020Q4 us-gaap Deferred Tax Assets Operating Loss Carryforwards Subject To Expiration
DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration
7500000
CY2019Q4 us-gaap Deferred Tax Assets Operating Loss Carryforwards Subject To Expiration
DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration
12700000
CY2020 us-gaap Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
0.210
CY2019 us-gaap Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
0.210
CY2018 us-gaap Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
0.210
CY2020 us-gaap Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
0.042
CY2019 us-gaap Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
0.053
CY2018 us-gaap Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
0.045
CY2020 us-gaap Effective Income Tax Rate Reconciliation Nondeductible Expense Share Based Compensation Cost
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
0.021
CY2019 us-gaap Effective Income Tax Rate Reconciliation Nondeductible Expense Share Based Compensation Cost
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
0.022
CY2018 us-gaap Effective Income Tax Rate Reconciliation Nondeductible Expense Share Based Compensation Cost
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
0.014
CY2020 us-gaap Effective Income Tax Rate Reconciliation Nondeductible Expense Meals And Entertainment
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment
0.002
CY2019 us-gaap Effective Income Tax Rate Reconciliation Nondeductible Expense Meals And Entertainment
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment
0.003
CY2018 us-gaap Effective Income Tax Rate Reconciliation Nondeductible Expense Meals And Entertainment
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment
0.004
CY2018 bld Effective Income Tax Rate Reconciliation Nondeductible Expense Transaction Costs Percent
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseTransactionCostsPercent
0.003
CY2020 us-gaap Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
0.002
CY2019 us-gaap Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
0.003
CY2018 us-gaap Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
0.007
CY2020 us-gaap Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
0.235
CY2019 us-gaap Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
0.247
CY2018 us-gaap Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
0.255
CY2020 us-gaap Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
7800000
CY2020 us-gaap Net Income Loss
NetIncomeLoss
247023000
CY2019 us-gaap Net Income Loss
NetIncomeLoss
190995000
CY2018 us-gaap Net Income Loss
NetIncomeLoss
134752000
CY2020 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
32917971
CY2019 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
33806104
CY2018 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
34921318
CY2020 bld Incremental Common Shares Attributable To Dilutive Effect Of Stock Options
IncrementalCommonSharesAttributableToDilutiveEffectOfStockOptions
138354
CY2019 bld Incremental Common Shares Attributable To Dilutive Effect Of Stock Options
IncrementalCommonSharesAttributableToDilutiveEffectOfStockOptions
225049
CY2018 bld Incremental Common Shares Attributable To Dilutive Effect Of Stock Options
IncrementalCommonSharesAttributableToDilutiveEffectOfStockOptions
281932
CY2020 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
33299986
CY2019 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
34376555
CY2018 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
35613319
CY2020 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
7.50
CY2019 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
5.65
CY2018 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
3.86
CY2020 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
7.42
CY2019 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
5.56
CY2018 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
3.78
CY2020 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
35221
CY2019 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
63308
CY2018 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
85205
CY2020 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
14752000
CY2019 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
13658000
CY2018 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
11317000
CY2020 us-gaap Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
7772000
CY2019 us-gaap Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
6285000
CY2018 us-gaap Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
3154000
CY2020 us-gaap Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested And Expected To Vest Exercisable Weighted Average Remaining Contractual Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1
P6Y3M18D
CY2020 bld Schedule Of Unrecognized Share Based Compensation Expense Nonvested Awards
ScheduleOfUnrecognizedShareBasedCompensationExpenseNonvestedAwards
<p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;">We had unrecognized share-based compensation expense relating to unvested awards as shown in the following table, dollars in thousands:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:59.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:17.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:17.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:59.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">​</span></p></td><td colspan="5" style="background-color:#ffffff;vertical-align:bottom;white-space:nowrap;width:39.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">As of December 31, 2020</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:59.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:#ffffff;vertical-align:bottom;width:18.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">Unrecognized Compensation Expense <br/>on Unvested Awards</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:18.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">Weighted Average<br/>Remaining<br/>Vesting Period</b></p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:59.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:justify;margin:0pt 0pt 0pt 12pt;">RSAs</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:justify;margin:0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:17.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9,182</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:17.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><span style="font-size:9pt;">1.0</span><span style="font-size:9pt;"> years</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:59.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:justify;margin:0pt 0pt 0pt 12pt;">Stock options</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,120</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><span style="font-size:9pt;">0.9</span><span style="font-size:9pt;"> years</span></p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:59.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:justify;margin:0pt;">Total unrecognized compensation expense related to unvested awards</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.65%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:justify;margin:0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:17.07%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.19;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10,302</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:justify;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:17.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td></tr></table>
CY2020Q4 us-gaap Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized Share Based Awards Other Than Options
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
9182000
CY2020 bld Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Outstanding Weighted Average Remaining Vesting Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingVestingPeriod
P1Y
CY2020Q4 us-gaap Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized Stock Options
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions
1120000
CY2020 bld Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Remaining Vesting Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingVestingPeriod
P0Y10M24D
CY2020Q4 us-gaap Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
10302000
CY2020Q1 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
653228000
CY2020Q2 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
646099000
CY2020Q3 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
697223000
CY2020Q4 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
721487000
CY2020 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2718038000
CY2020Q1 us-gaap Gross Profit
GrossProfit
171956000
CY2020Q2 us-gaap Gross Profit
GrossProfit
178054000
CY2020Q3 us-gaap Gross Profit
GrossProfit
198328000
CY2020Q4 us-gaap Gross Profit
GrossProfit
198020000
CY2020 us-gaap Gross Profit
GrossProfit
746361000
CY2020Q1 us-gaap Operating Income Loss
OperatingIncomeLoss
69989000
CY2020Q2 us-gaap Operating Income Loss
OperatingIncomeLoss
80454000
CY2020Q3 us-gaap Operating Income Loss
OperatingIncomeLoss
101523000
CY2020Q4 us-gaap Operating Income Loss
OperatingIncomeLoss
103077000
CY2020 us-gaap Operating Income Loss
OperatingIncomeLoss
355046000
CY2020Q1 us-gaap Net Income Loss
NetIncomeLoss
50771000
CY2020Q2 us-gaap Net Income Loss
NetIncomeLoss
55496000
CY2020Q3 us-gaap Net Income Loss
NetIncomeLoss
69996000
CY2020Q4 us-gaap Net Income Loss
NetIncomeLoss
70757000
CY2020 us-gaap Net Income Loss
NetIncomeLoss
247023000
CY2020Q1 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.53
CY2020Q2 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.69
CY2020Q3 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
2.13
CY2020Q4 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
2.16
CY2020 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
7.50
CY2020Q1 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.51
CY2020Q2 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.67
CY2020Q3 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
2.11
CY2020Q4 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
2.13
CY2020 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
7.42
CY2019Q1 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
619330000
CY2019Q2 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
660112000
CY2019Q3 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
682330000
CY2019Q4 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
662349000
CY2019 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2624121000
CY2019Q1 us-gaap Gross Profit
GrossProfit
155695000
CY2019Q2 us-gaap Gross Profit
GrossProfit
174922000
CY2019Q3 us-gaap Gross Profit
GrossProfit
179331000
CY2019Q4 us-gaap Gross Profit
GrossProfit
171319000
CY2019 us-gaap Gross Profit
GrossProfit
681267000
CY2019Q1 us-gaap Operating Income Loss
OperatingIncomeLoss
56618000
CY2019Q2 us-gaap Operating Income Loss
OperatingIncomeLoss
76039000
CY2019Q3 us-gaap Operating Income Loss
OperatingIncomeLoss
80445000
CY2019Q4 us-gaap Operating Income Loss
OperatingIncomeLoss
76421000
CY2019 us-gaap Operating Income Loss
OperatingIncomeLoss
289523000
CY2019Q1 us-gaap Net Income Loss
NetIncomeLoss
37983000
CY2019Q2 us-gaap Net Income Loss
NetIncomeLoss
52051000
CY2019Q3 us-gaap Net Income Loss
NetIncomeLoss
54976000
CY2019Q4 us-gaap Net Income Loss
NetIncomeLoss
45985000
CY2019 us-gaap Net Income Loss
NetIncomeLoss
190995000
CY2019Q1 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.11
CY2019Q2 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.53
CY2019Q3 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.63
CY2019Q4 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.38
CY2019 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
5.65
CY2019Q1 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.09
CY2019Q2 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.51
CY2019Q3 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.60
CY2019Q4 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.36
CY2019 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
5.56
CY2020 us-gaap Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
900000
CY2019 us-gaap Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
100000
CY2019 us-gaap Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
1291771
CY2020 us-gaap Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
49151000
CY2020 us-gaap Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
616227
CY2019 us-gaap Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
110911000

Files In Submission

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