2023 Q1 Form 10-K Financial Statement

#000155837023001903 Filed on February 23, 2023

View on sec.gov

Income Statement

Concept 2023 Q1 2022 Q4 2022
Revenue $1.265B $1.265B $5.009B
YoY Change 8.24% 18.92% 43.67%
Cost Of Revenue $895.0M $888.9M $3.522B
YoY Change 6.84% 13.92% 40.22%
Gross Profit $370.2M $375.7M $1.487B
YoY Change 11.78% 32.67% 52.58%
Gross Profit Margin 29.26% 29.71% 29.68%
Selling, General & Admin $170.8M $172.6M $689.6M
YoY Change 2.11% 12.92% 38.47%
% of Gross Profit 46.13% 45.93% 46.38%
Research & Development
YoY Change
% of Gross Profit
Depreciation & Amortization $32.10M $30.28M $123.3M
YoY Change 5.25% 6.69% 55.35%
% of Gross Profit 8.67% 8.06% 8.3%
Operating Expenses $170.8M $172.6M $689.6M
YoY Change 2.11% 12.92% 38.47%
Operating Profit $199.4M $203.1M $797.2M
YoY Change 21.64% 55.83% 67.32%
Interest Expense $18.04M -$16.78M $56.72M
YoY Change 50.75% 53.48% 94.61%
% of Operating Profit 9.05% -8.26% 7.11%
Other Income/Expense, Net -$16.12M $1.584M -$55.03M
YoY Change 42.85% -868.93% 28.05%
Pretax Income $183.3M $187.9M $742.1M
YoY Change 20.07% 75.09% 71.22%
Income Tax $47.45M $44.09M $186.1M
% Of Pretax Income 25.88% 23.46% 25.08%
Net Earnings $135.9M $143.8M $556.0M
YoY Change 18.45% 83.56% 71.59%
Net Earnings / Revenue 10.74% 11.37% 11.1%
Basic Earnings Per Share $4.31 $17.26
Diluted Earnings Per Share $4.28 $4.52 $17.14
COMMON SHARES
Basic Shares Outstanding 31.67M 31.97M 32.21M
Diluted Shares Outstanding 31.71M 32.44M

Balance Sheet

Concept 2023 Q1 2022 Q4 2022
SHORT-TERM ASSETS
Cash & Short-Term Investments $333.8M $240.1M $240.1M
YoY Change 163.75% 71.75% 71.75%
Cash & Equivalents $333.8M $240.1M $240.1M
Short-Term Investments
Other Short-Term Assets $22.86M $34.26M $34.26M
YoY Change -21.45% 28.34% 28.34%
Inventory $422.2M $438.6M $438.6M
Prepaid Expenses
Receivables $834.0M $836.1M $836.1M
Other Receivables $0.00 $0.00 $0.00
Total Short-Term Assets $1.613B $1.549B $1.549B
YoY Change 25.89% 30.42% 30.42%
LONG-TERM ASSETS
Property, Plant & Equipment $471.5M $246.8M $459.4M
YoY Change 8.85% 5.11% 8.92%
Goodwill $25.40M $1.967B
YoY Change -98.71% 0.88%
Intangibles $615.0M
YoY Change -10.12%
Long-Term Investments
YoY Change
Other Assets $16.48M $16.45M $16.45M
YoY Change 25.81% 24.54% 8.84%
Total Long-Term Assets $3.088B $3.058B $3.058B
YoY Change 0.25% -0.42% -0.42%
TOTAL ASSETS
Total Short-Term Assets $1.613B $1.549B $1.549B
Total Long-Term Assets $3.088B $3.058B $3.058B
Total Assets $4.701B $4.607B $4.607B
YoY Change 7.78% 8.18% 8.18%
SHORT-TERM LIABILITIES
YoY Change
Accounts Payable $451.0M $487.1M $487.1M
YoY Change -4.84% 5.45% 5.45%
Accrued Expenses $234.7M $238.3M $238.3M
YoY Change -4.87% 10.24% 10.24%
Deferred Revenue $20.74M $21.94M
YoY Change 30.21% 53.31%
Short-Term Debt $0.00 $0.00 $0.00
YoY Change
Long-Term Debt Due $42.37M $40.07M $42.28M
YoY Change 9.42% 3.7% 3.04%
Total Short-Term Liabilities $751.2M $789.6M $789.6M
YoY Change -3.43% 7.66% 7.66%
LONG-TERM LIABILITIES
Long-Term Debt $1.406B $1.417B $1.424B
YoY Change -2.74% -2.56% -2.62%
Other Long-Term Liabilities $5.259M $2.349M $212.1M
YoY Change 332.48% 144.69% 19.03%
Total Long-Term Liabilities $1.411B $1.420B $1.636B
YoY Change -2.45% -2.46% -0.27%
TOTAL LIABILITIES
Total Short-Term Liabilities $751.2M $789.6M $789.6M
Total Long-Term Liabilities $1.411B $1.420B $1.636B
Total Liabilities $2.636B $2.677B $2.677B
YoY Change -1.07% 2.1% 2.1%
SHAREHOLDERS EQUITY
Retained Earnings $1.893B $1.757B
YoY Change 43.88% 46.31%
Common Stock $891.9M $887.8M
YoY Change 1.59% 1.64%
Preferred Stock
YoY Change
Treasury Stock (at cost)
YoY Change
Treasury Stock Shares
Shareholders Equity $2.065B $1.930B $1.930B
YoY Change
Total Liabilities & Shareholders Equity $4.701B $4.607B $4.607B
YoY Change 7.78% 8.18% 8.18%

Cashflow Statement

Concept 2023 Q1 2022 Q4 2022
OPERATING ACTIVITIES
Net Income $135.9M $143.8M $556.0M
YoY Change 18.45% 83.56% 71.59%
Depreciation, Depletion And Amortization $32.10M $30.28M $123.3M
YoY Change 5.25% 6.69% 55.35%
Cash From Operating Activities $169.8M $160.2M $495.8M
YoY Change 89.76% 71.27% 23.02%
INVESTING ACTIVITIES
Capital Expenditures $15.58M $20.34M $76.38M
YoY Change -15.39% -253.77% 37.51%
Acquisitions $45.85M $20.50M
YoY Change 228.24% -98.38%
Other Investing Activities -$45.39M $98.00K -$17.53M
YoY Change 230.98% -100.01% -98.62%
Cash From Investing Activities -$60.97M -$20.24M -$93.91M
YoY Change 89.78% -98.12% -92.9%
FINANCING ACTIVITIES
Cash Dividend Paid
YoY Change
Common Stock Issuance & Retirement, Net $250.1M
YoY Change 603.26%
Debt Paid & Issued, Net $9.743M $38.66M
YoY Change 1.13% -91.07%
Cash From Financing Activities -15.06M -59.69M -300.1M
YoY Change -78.63% -107.52% -141.16%
NET CHANGE
Cash From Operating Activities 169.8M 160.2M 495.8M
Cash From Investing Activities -60.97M -20.24M -93.91M
Cash From Financing Activities -15.06M -59.69M -300.1M
Net Change In Cash 93.71M 80.24M 100.3M
YoY Change -808.52% -142.66% -152.72%
FREE CASH FLOW
Cash From Operating Activities $169.8M $160.2M $495.8M
Capital Expenditures $15.58M $20.34M $76.38M
Free Cash Flow $154.2M $139.8M $419.4M
YoY Change 117.0% 31.0% 20.7%

Facts In Submission

Frame Concept Type Concept / XBRL Key Value Unit
CY2022 dei Entity Small Business
EntitySmallBusiness
false
CY2022Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2021Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2022 dei Entity Central Index Key
EntityCentralIndexKey
0001633931
CY2022 dei Document Fiscal Year Focus
DocumentFiscalYearFocus
2022
CY2022 dei Document Fiscal Period Focus
DocumentFiscalPeriodFocus
FY
CY2022 dei Amendment Flag
AmendmentFlag
false
CY2022Q4 us-gaap Finance Lease Right Of Use Asset Statement Of Financial Position Extensible List
FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList
http://fasb.org/us-gaap/2022#PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization
CY2021Q4 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2022Q4 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2022Q4 us-gaap Preferred Stock Value
PreferredStockValue
CY2021Q4 us-gaap Preferred Stock Value
PreferredStockValue
CY2021Q4 us-gaap Finance Lease Right Of Use Asset Statement Of Financial Position Extensible List
FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList
http://fasb.org/us-gaap/2022#PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization
CY2022 dei Document Type
DocumentType
10-K
CY2022 dei Document Annual Report
DocumentAnnualReport
true
CY2022 dei Document Period End Date
DocumentPeriodEndDate
2022-12-31
CY2022 dei Current Fiscal Year End Date
CurrentFiscalYearEndDate
--12-31
CY2022 dei Document Transition Report
DocumentTransitionReport
false
CY2022 dei Entity File Number
EntityFileNumber
001-36870
CY2022 dei Entity Registrant Name
EntityRegistrantName
TopBuild Corp
CY2022 dei Entity Incorporation State Country Code
EntityIncorporationStateCountryCode
DE
CY2022 dei Entity Tax Identification Number
EntityTaxIdentificationNumber
47-3096382
CY2022 dei Entity Address Address Line1
EntityAddressAddressLine1
475 North Williamson Boulevard
CY2022 dei Entity Address City Or Town
EntityAddressCityOrTown
Daytona Beach
CY2022 dei Entity Address State Or Province
EntityAddressStateOrProvince
FL
CY2022 dei Entity Address Postal Zip Code
EntityAddressPostalZipCode
32114
CY2022 dei City Area Code
CityAreaCode
386
CY2022 dei Local Phone Number
LocalPhoneNumber
304-2200
CY2022 dei Security12b Title
Security12bTitle
Common stock, par value $0.01 per share
CY2022 dei Trading Symbol
TradingSymbol
BLD
CY2022 dei Security Exchange Name
SecurityExchangeName
NYSE
CY2022 dei Entity Well Known Seasoned Issuer
EntityWellKnownSeasonedIssuer
Yes
CY2022 dei Entity Voluntary Filers
EntityVoluntaryFilers
No
CY2022 dei Entity Current Reporting Status
EntityCurrentReportingStatus
Yes
CY2022 dei Entity Emerging Growth Company
EntityEmergingGrowthCompany
false
CY2022 dei Icfr Auditor Attestation Flag
IcfrAuditorAttestationFlag
false
CY2022 dei Entity Shell Company
EntityShellCompany
false
CY2022Q2 dei Entity Public Float
EntityPublicFloat
5400000000
CY2023Q1 dei Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
31669260
CY2022 dei Entity Interactive Data Current
EntityInteractiveDataCurrent
Yes
CY2022 dei Entity Filer Category
EntityFilerCategory
Large Accelerated Filer
CY2022 dei Auditor Firm
AuditorFirmId
238
CY2022 dei Auditor Name
AuditorName
PricewaterhouseCoopers LLP
CY2022 dei Auditor Location
AuditorLocation
Tampa, Florida
CY2022Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
240069000
CY2021Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
139779000
CY2022Q4 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
16281000
CY2021Q4 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
8798000
CY2022Q4 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
836071000
CY2021Q4 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
668419000
CY2022Q4 us-gaap Inventory Net
InventoryNet
438644000
CY2021Q4 us-gaap Inventory Net
InventoryNet
352801000
CY2022Q4 us-gaap Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
34257000
CY2021Q4 us-gaap Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
26692000
CY2022Q4 us-gaap Assets Current
AssetsCurrent
1549041000
CY2021Q4 us-gaap Assets Current
AssetsCurrent
1187691000
CY2022Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
205892000
CY2021Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
177177000
CY2022Q4 us-gaap Property Plant And Equipment And Finance Lease Right Of Use Asset After Accumulated Depreciation And Amortization
PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization
253484000
CY2021Q4 us-gaap Property Plant And Equipment And Finance Lease Right Of Use Asset After Accumulated Depreciation And Amortization
PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization
244574000
CY2022Q4 us-gaap Goodwill
Goodwill
1966994000
CY2021Q4 us-gaap Goodwill
Goodwill
1949763000
CY2022Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
614967000
CY2021Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
684209000
CY2022Q4 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
16453000
CY2021Q4 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
15116000
CY2022Q4 us-gaap Assets
Assets
4606831000
CY2021Q4 us-gaap Assets
Assets
4258530000
CY2022Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
487114000
CY2021Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
461917000
CY2022Q4 us-gaap Long Term Debt Current
LongTermDebtCurrent
40068000
CY2021Q4 us-gaap Long Term Debt Current
LongTermDebtCurrent
38640000
CY2022Q4 bld Accrued Liabilities And Employee Related Liabilities Current
AccruedLiabilitiesAndEmployeeRelatedLiabilitiesCurrent
199370000
CY2021Q4 bld Accrued Liabilities And Employee Related Liabilities Current
AccruedLiabilitiesAndEmployeeRelatedLiabilitiesCurrent
175891000
CY2022Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
60880000
CY2021Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
54591000
CY2022Q4 us-gaap Finance Lease Liability Current
FinanceLeaseLiabilityCurrent
2207000
CY2021Q4 us-gaap Finance Lease Liability Current
FinanceLeaseLiabilityCurrent
2387000
CY2022Q4 us-gaap Liabilities Current
LiabilitiesCurrent
789639000
CY2021Q4 us-gaap Liabilities Current
LiabilitiesCurrent
733426000
CY2022Q4 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
1417257000
CY2021Q4 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
1454483000
CY2022Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
251481000
CY2021Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
248243000
CY2022Q4 us-gaap Accrued Insurance Noncurrent
AccruedInsuranceNoncurrent
59783000
CY2021Q4 us-gaap Accrued Insurance Noncurrent
AccruedInsuranceNoncurrent
51875000
CY2022Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
149943000
CY2021Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
125339000
CY2022Q4 us-gaap Finance Lease Liability Noncurrent
FinanceLeaseLiabilityNoncurrent
6673000
CY2021Q4 us-gaap Finance Lease Liability Noncurrent
FinanceLeaseLiabilityNoncurrent
7770000
CY2022Q4 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
2349000
CY2021Q4 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
960000
CY2022Q4 us-gaap Liabilities
Liabilities
2677125000
CY2021Q4 us-gaap Liabilities
Liabilities
2622096000
CY2021Q4 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.01
CY2022Q4 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.01
CY2021Q4 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
10000000
CY2022Q4 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
10000000
CY2021Q4 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2022Q4 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2021Q4 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.01
CY2022Q4 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.01
CY2021Q4 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
250000000
CY2022Q4 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
250000000
CY2022Q4 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
39325916
CY2022Q4 us-gaap Common Stock Shares Outstanding
CommonStockSharesOutstanding
31642832
CY2021Q4 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
39165024
CY2021Q4 us-gaap Common Stock Shares Outstanding
CommonStockSharesOutstanding
32927185
CY2022Q4 us-gaap Common Stock Value
CommonStockValue
393000
CY2021Q4 us-gaap Common Stock Value
CommonStockValue
391000
CY2022Q4 us-gaap Treasury Stock Common Shares
TreasuryStockCommonShares
7683084
CY2021Q4 us-gaap Treasury Stock Common Shares
TreasuryStockCommonShares
6237839
CY2022Q4 us-gaap Treasury Stock Common Value
TreasuryStockCommonValue
692799000
CY2021Q4 us-gaap Treasury Stock Common Value
TreasuryStockCommonValue
431030000
CY2022Q4 us-gaap Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
887367000
CY2021Q4 us-gaap Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
873031000
CY2022Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
1756665000
CY2021Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
1200676000
CY2022Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
-21920000
CY2021Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
-6634000
CY2022Q4 us-gaap Stockholders Equity
StockholdersEquity
1929706000
CY2021Q4 us-gaap Stockholders Equity
StockholdersEquity
1636434000
CY2022Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
4606831000
CY2021Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
4258530000
CY2022 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
5008744000
CY2021 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
3486207000
CY2020 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2718038000
CY2022 us-gaap Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
3522025000
CY2021 us-gaap Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
2511818000
CY2020 us-gaap Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
1971677000
CY2022 us-gaap Gross Profit
GrossProfit
1486719000
CY2021 us-gaap Gross Profit
GrossProfit
974389000
CY2020 us-gaap Gross Profit
GrossProfit
746361000
CY2022 us-gaap Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
689555000
CY2021 us-gaap Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
497970000
CY2020 us-gaap Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
391315000
CY2022 us-gaap Operating Income Loss
OperatingIncomeLoss
797164000
CY2021 us-gaap Operating Income Loss
OperatingIncomeLoss
476419000
CY2020 us-gaap Operating Income Loss
OperatingIncomeLoss
355046000
CY2022 us-gaap Interest Expense
InterestExpense
56716000
CY2021 us-gaap Interest Expense
InterestExpense
29143000
CY2020 us-gaap Interest Expense
InterestExpense
32456000
CY2021 us-gaap Gains Losses On Extinguishment Of Debt
GainsLossesOnExtinguishmentOfDebt
-13837000
CY2020 us-gaap Gains Losses On Extinguishment Of Debt
GainsLossesOnExtinguishmentOfDebt
-233000
CY2022 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
1687000
CY2021 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
4000
CY2020 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
733000
CY2022 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-55029000
CY2021 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-42976000
CY2020 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-31956000
CY2022 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
742135000
CY2021 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
433443000
CY2020 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
323090000
CY2022 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
186146000
CY2021 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
109427000
CY2020 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
76067000
CY2022 us-gaap Net Income Loss
NetIncomeLoss
555989000
CY2021 us-gaap Net Income Loss
NetIncomeLoss
324016000
CY2020 us-gaap Net Income Loss
NetIncomeLoss
247023000
CY2022 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
17.26
CY2021 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
9.88
CY2020 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
7.50
CY2022 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
17.14
CY2021 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
9.78
CY2020 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
7.42
CY2022 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
32213839
CY2021 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
32801906
CY2020 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
32917971
CY2022 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
32440405
CY2021 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
33146171
CY2020 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
33299986
CY2022 us-gaap Net Income Loss
NetIncomeLoss
555989000
CY2021 us-gaap Net Income Loss
NetIncomeLoss
324016000
CY2020 us-gaap Net Income Loss
NetIncomeLoss
247023000
CY2022 us-gaap Other Comprehensive Income Foreign Currency Transaction And Translation Gain Loss Arising During Period Net Of Tax
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
-15286000
CY2021 us-gaap Other Comprehensive Income Foreign Currency Transaction And Translation Gain Loss Arising During Period Net Of Tax
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
-6634000
CY2022 us-gaap Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
540703000
CY2021 us-gaap Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
317382000
CY2020 us-gaap Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
247023000
CY2022 us-gaap Profit Loss
ProfitLoss
555989000
CY2021 us-gaap Profit Loss
ProfitLoss
324016000
CY2020 us-gaap Profit Loss
ProfitLoss
247023000
CY2022 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
123335000
CY2021 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
79390000
CY2020 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
62410000
CY2022 us-gaap Share Based Compensation
ShareBasedCompensation
12310000
CY2021 us-gaap Share Based Compensation
ShareBasedCompensation
11316000
CY2020 us-gaap Share Based Compensation
ShareBasedCompensation
14752000
CY2021 us-gaap Gains Losses On Extinguishment Of Debt
GainsLossesOnExtinguishmentOfDebt
-13837000
CY2020 us-gaap Gains Losses On Extinguishment Of Debt
GainsLossesOnExtinguishmentOfDebt
-233000
CY2022 us-gaap Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
-1833000
CY2021 us-gaap Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
-1356000
CY2020 us-gaap Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
88000
CY2021 us-gaap Amortization Of Financing Costs
AmortizationOfFinancingCosts
2036000
CY2020 us-gaap Amortization Of Financing Costs
AmortizationOfFinancingCosts
1491000
CY2021 us-gaap Increase Decrease In Deferred Income Taxes
IncreaseDecreaseInDeferredIncomeTaxes
2818000
CY2020 us-gaap Increase Decrease In Deferred Income Taxes
IncreaseDecreaseInDeferredIncomeTaxes
4070000
CY2022 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
169327000
CY2022 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
5510000
CY2021 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
7304000
CY2020 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
6270000
CY2022 us-gaap Inventory Write Down
InventoryWriteDown
6659000
CY2021 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
69042000
CY2022 us-gaap Amortization Of Financing Costs
AmortizationOfFinancingCosts
2867000
CY2021 us-gaap Inventory Write Down
InventoryWriteDown
2637000
CY2020 us-gaap Inventory Write Down
InventoryWriteDown
2512000
CY2022 us-gaap Increase Decrease In Deferred Income Taxes
IncreaseDecreaseInDeferredIncomeTaxes
-6041000
CY2020 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
49151000
CY2022 us-gaap Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
1674000
CY2021 us-gaap Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
650000
CY2022 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
100290000
CY2020 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
-2612000
CY2022 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
93874000
CY2021 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
46518000
CY2020 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
11843000
CY2022 us-gaap Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
9222000
CY2021 us-gaap Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
-558000
CY2020 us-gaap Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
460000
CY2022 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
26581000
CY2021 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
54961000
CY2020 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
16844000
CY2022 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
20703000
CY2021 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
24816000
CY2020 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
20545000
CY2022 us-gaap Other Operating Activities Cash Flow Statement
OtherOperatingActivitiesCashFlowStatement
6396000
CY2021 us-gaap Other Operating Activities Cash Flow Statement
OtherOperatingActivitiesCashFlowStatement
-824000
CY2020 us-gaap Other Operating Activities Cash Flow Statement
OtherOperatingActivitiesCashFlowStatement
-347000
CY2022 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
495801000
CY2021 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
403025000
CY2020 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
357884000
CY2022 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
76382000
CY2021 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
55546000
CY2020 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
40938000
CY2022 us-gaap Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
20500000
CY2021 us-gaap Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
1267114000
CY2020 us-gaap Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
83408000
CY2022 us-gaap Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
2975000
CY2021 us-gaap Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
415000
CY2020 us-gaap Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
2463000
CY2022 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-93907000
CY2021 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-1322245000
CY2020 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-121883000
CY2021 us-gaap Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
1218750000
CY2020 us-gaap Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
300000000
CY2022 us-gaap Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
38658000
CY2021 us-gaap Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
433070000
CY2020 us-gaap Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
324948000
CY2021 us-gaap Payments Of Debt Issuance Costs
PaymentsOfDebtIssuanceCosts
14965000
CY2020 us-gaap Payments Of Debt Issuance Costs
PaymentsOfDebtIssuanceCosts
2280000
CY2022 us-gaap Proceeds From Lines Of Credit
ProceedsFromLinesOfCredit
70000000
CY2022 us-gaap Repayments Of Lines Of Credit
RepaymentsOfLinesOfCredit
70000000
CY2022 us-gaap Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
11719000
CY2021 us-gaap Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
8805000
CY2020 us-gaap Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
14932000
CY2022 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
2028000
CY2021 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
3303000
CY2020 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
1438000
CY2022 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
250050000
CY2021 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
35556000
CY2021 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
-190228000
CY2020 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
145200000
CY2021Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
139779000
CY2020 us-gaap Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
928000
CY2022 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
-300073000
CY2021 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
729007000
CY2020 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
-90801000
CY2022 us-gaap Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
-1531000
CY2021 us-gaap Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
-15000
CY2020Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
330007000
CY2019Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
184807000
CY2022Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
240069000
CY2021Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
139779000
CY2020Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
330007000
CY2022 us-gaap Interest Paid Net
InterestPaidNet
49888000
CY2021 us-gaap Interest Paid Net
InterestPaidNet
22144000
CY2020 us-gaap Interest Paid Net
InterestPaidNet
30896000
CY2022 us-gaap Income Taxes Paid
IncomeTaxesPaid
186722000
CY2021 us-gaap Income Taxes Paid
IncomeTaxesPaid
109179000
CY2020 us-gaap Income Taxes Paid
IncomeTaxesPaid
77689000
CY2022 us-gaap Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
103997000
CY2021 us-gaap Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
131909000
CY2020 us-gaap Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
38646000
CY2021 us-gaap Right Of Use Asset Obtained In Exchange For Finance Lease Liability
RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
10469000
CY2022 us-gaap Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
141000
CY2021 us-gaap Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
1060000
CY2020 us-gaap Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
645000
CY2020Q4 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.01
CY2021Q4 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.01
CY2022Q4 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.01
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
253470
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
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
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 Stockholders Equity
StockholdersEquity
1348794000
CY2021 us-gaap Net Income Loss
NetIncomeLoss
324016000
CY2021 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
11316000
CY2021 us-gaap Stock Issued During Period Shares Restricted Stock Award Gross
StockIssuedDuringPeriodSharesRestrictedStockAwardGross
144679
CY2021 bld Treasury Stock Shares Acquired Cost Method Share Repurchase Program
TreasuryStockSharesAcquiredCostMethodShareRepurchaseProgram
183136
CY2021 bld Treasury Stock Value Acquired Cost Method Share Repurchase Program
TreasuryStockValueAcquiredCostMethodShareRepurchaseProgram
35556000
CY2021 us-gaap Shares Paid For Tax Withholding For Share Based Compensation
SharesPaidForTaxWithholdingForShareBasedCompensation
43715
CY2021 us-gaap Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
8805000
CY2021 us-gaap Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
53275
CY2021 us-gaap Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
3303000
CY2021 us-gaap Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
-6634000
CY2021Q4 us-gaap Stockholders Equity
StockholdersEquity
1636434000
CY2022 us-gaap Net Income Loss
NetIncomeLoss
555989000
CY2022 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
12310000
CY2022 us-gaap Stock Issued During Period Shares Restricted Stock Award Gross
StockIssuedDuringPeriodSharesRestrictedStockAwardGross
168137
CY2022 bld Treasury Stock Shares Acquired Cost Method Share Repurchase Program
TreasuryStockSharesAcquiredCostMethodShareRepurchaseProgram
1390667
CY2022 bld Treasury Stock Value Acquired Cost Method Settlement Of Accelerated Share Repurchase Program
TreasuryStockValueAcquiredCostMethodSettlementOfAcceleratedShareRepurchaseProgram
250050000
CY2022 us-gaap Shares Paid For Tax Withholding For Share Based Compensation
SharesPaidForTaxWithholdingForShareBasedCompensation
53593
CY2022 us-gaap Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
11719000
CY2022 us-gaap Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
25215
CY2022 us-gaap Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
2028000
CY2022 us-gaap Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
-15286000
CY2022Q4 us-gaap Stockholders Equity
StockholdersEquity
1929706000
CY2022 us-gaap Number Of Reportable Segments
NumberOfReportableSegments
2
CY2022 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>
CY2022Q4 us-gaap Inventory Valuation Reserves
InventoryValuationReserves
17300000
CY2021Q4 us-gaap Inventory Valuation Reserves
InventoryValuationReserves
11200000
CY2022Q4 bld Insurance Liability
InsuranceLiability
16500000
CY2022Q4 bld Insurance Receivable
InsuranceReceivable
16500000
CY2021Q4 bld Insurance Liability
InsuranceLiability
13200000
CY2021Q4 bld Insurance Receivable
InsuranceReceivable
13200000
CY2022 us-gaap Advertising Expense
AdvertisingExpense
2900000
CY2021 us-gaap Advertising Expense
AdvertisingExpense
2300000
CY2020 us-gaap Advertising Expense
AdvertisingExpense
1400000
CY2022Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
205892000
CY2021Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
177177000
CY2022Q4 us-gaap Finance Lease Right Of Use Asset
FinanceLeaseRightOfUseAsset
6647000
CY2021Q4 us-gaap Finance Lease Right Of Use Asset
FinanceLeaseRightOfUseAsset
9743000
CY2022Q4 bld Operating And Finance Lease Right Of Use Asset
OperatingAndFinanceLeaseRightOfUseAsset
212539000
CY2021Q4 bld Operating And Finance Lease Right Of Use Asset
OperatingAndFinanceLeaseRightOfUseAsset
186920000
CY2022Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
60880000
CY2021Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
54591000
CY2022Q4 us-gaap Finance Lease Liability Current
FinanceLeaseLiabilityCurrent
2207000
CY2021Q4 us-gaap Finance Lease Liability Current
FinanceLeaseLiabilityCurrent
2387000
CY2022Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
149943000
CY2021Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
125339000
CY2022Q4 us-gaap Finance Lease Liability Noncurrent
FinanceLeaseLiabilityNoncurrent
6673000
CY2021Q4 us-gaap Finance Lease Liability Noncurrent
FinanceLeaseLiabilityNoncurrent
7770000
CY2022Q4 bld Operating And Finance Lease Liability
OperatingAndFinanceLeaseLiability
219703000
CY2021Q4 bld Operating And Finance Lease Liability
OperatingAndFinanceLeaseLiability
190087000
CY2022Q4 us-gaap Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
P4Y2M12D
CY2021Q4 us-gaap Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
P4Y1M6D
CY2022Q4 us-gaap Finance Lease Weighted Average Remaining Lease Term1
FinanceLeaseWeightedAverageRemainingLeaseTerm1
P3Y9M18D
CY2021Q4 us-gaap Finance Lease Weighted Average Remaining Lease Term1
FinanceLeaseWeightedAverageRemainingLeaseTerm1
P4Y4M24D
CY2022Q4 us-gaap Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
0.032
CY2021Q4 us-gaap Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
0.031
CY2022Q4 us-gaap Finance Lease Weighted Average Discount Rate Percent
FinanceLeaseWeightedAverageDiscountRatePercent
0.029
CY2021Q4 us-gaap Finance Lease Weighted Average Discount Rate Percent
FinanceLeaseWeightedAverageDiscountRatePercent
0.029
CY2022 us-gaap Operating Lease Cost
OperatingLeaseCost
75366000
CY2021 us-gaap Operating Lease Cost
OperatingLeaseCost
55824000
CY2020 us-gaap Operating Lease Cost
OperatingLeaseCost
47731000
CY2022 us-gaap Finance Lease Right Of Use Asset Amortization
FinanceLeaseRightOfUseAssetAmortization
2815000
CY2021 us-gaap Finance Lease Right Of Use Asset Amortization
FinanceLeaseRightOfUseAssetAmortization
673000
CY2022 us-gaap Finance Lease Interest Expense
FinanceLeaseInterestExpense
268000
CY2021 us-gaap Finance Lease Interest Expense
FinanceLeaseInterestExpense
24000
CY2022 us-gaap Short Term Lease Cost
ShortTermLeaseCost
18315000
CY2021 us-gaap Short Term Lease Cost
ShortTermLeaseCost
15258000
CY2020 us-gaap Short Term Lease Cost
ShortTermLeaseCost
12397000
CY2022 us-gaap Sublease Income
SubleaseIncome
780000
CY2021 us-gaap Sublease Income
SubleaseIncome
882000
CY2020 us-gaap Sublease Income
SubleaseIncome
727000
CY2022 us-gaap Lease Cost
LeaseCost
95984000
CY2021 us-gaap Lease Cost
LeaseCost
70897000
CY2020 us-gaap Lease Cost
LeaseCost
59401000
CY2022 us-gaap Variable Lease Cost
VariableLeaseCost
14451000
CY2021 us-gaap Variable Lease Cost
VariableLeaseCost
8711000
CY2020 us-gaap Variable Lease Cost
VariableLeaseCost
6177000
CY2022Q4 us-gaap Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
72253000
CY2022Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
59464000
CY2022Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
47629000
CY2022Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
32455000
CY2022Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
18265000
CY2022Q4 us-gaap Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
13369000
CY2022Q4 us-gaap Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
243435000
CY2022Q4 us-gaap Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
23732000
CY2022Q4 us-gaap Operating Lease Liability
OperatingLeaseLiability
219703000
CY2022 us-gaap Finance Lease Interest Payment On Liability
FinanceLeaseInterestPaymentOnLiability
268000
CY2021 us-gaap Finance Lease Interest Payment On Liability
FinanceLeaseInterestPaymentOnLiability
74000
CY2022 us-gaap Operating Lease Payments
OperatingLeasePayments
74135000
CY2021 us-gaap Operating Lease Payments
OperatingLeasePayments
48125000
CY2020 us-gaap Operating Lease Payments
OperatingLeasePayments
41773000
CY2022 us-gaap Finance Lease Principal Payments
FinanceLeasePrincipalPayments
2361000
CY2021 us-gaap Finance Lease Principal Payments
FinanceLeasePrincipalPayments
562000
CY2022 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
5008744000
CY2021 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
3486207000
CY2020 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2718038000
CY2022 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
5008744000
CY2021 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
3486207000
CY2022Q4 us-gaap Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
411300000
CY2022 us-gaap Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Explanation
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionExplanation
over the next 18 months
CY2022Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
587529000
CY2021Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
531732000
CY2022Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
340692000
CY2021Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
296901000
CY2022Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
246837000
CY2021Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
234831000
CY2022Q4 us-gaap Finance Lease Right Of Use Asset
FinanceLeaseRightOfUseAsset
6600000
CY2021Q4 us-gaap Finance Lease Right Of Use Asset
FinanceLeaseRightOfUseAsset
9700000
CY2022 us-gaap Depreciation
Depreciation
52900000
CY2021 us-gaap Depreciation
Depreciation
42900000
CY2020 us-gaap Depreciation
Depreciation
40500000
CY2022 us-gaap Number Of Reporting Units
NumberOfReportingUnits
2
CY2021Q4 us-gaap Goodwill Impairment Loss
GoodwillImpairmentLoss
0
CY2022Q4 us-gaap Goodwill Impairment Loss
GoodwillImpairmentLoss
0
CY2021Q4 us-gaap Goodwill Gross
GoodwillGross
2711784000
CY2022 us-gaap Goodwill Period Increase Decrease
GoodwillPeriodIncreaseDecrease
18692000
CY2022 us-gaap Goodwill Foreign Currency Translation Gain Loss
GoodwillForeignCurrencyTranslationGainLoss
-1461000
CY2022Q4 us-gaap Goodwill Gross
GoodwillGross
2729015000
CY2022Q4 us-gaap Goodwill Impaired Accumulated Impairment Loss
GoodwillImpairedAccumulatedImpairmentLoss
762021000
CY2022Q4 us-gaap Goodwill
Goodwill
1966994000
CY2020Q4 us-gaap Goodwill Gross
GoodwillGross
2172706000
CY2021 us-gaap Goodwill Period Increase Decrease
GoodwillPeriodIncreaseDecrease
543847000
CY2021 us-gaap Goodwill Foreign Currency Translation Gain Loss
GoodwillForeignCurrencyTranslationGainLoss
-4769000
CY2021Q4 us-gaap Goodwill Gross
GoodwillGross
2711784000
CY2021Q4 us-gaap Goodwill Impaired Accumulated Impairment Loss
GoodwillImpairedAccumulatedImpairmentLoss
762021000
CY2021Q4 us-gaap Goodwill
Goodwill
1949763000
CY2022Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
782316000
CY2021Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
783843000
CY2020Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
252751000
CY2022Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
167349000
CY2021Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
99634000
CY2020Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
62146000
CY2022Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
614967000
CY2021Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
684209000
CY2020Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
190605000
CY2022Q4 us-gaap Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
614967000
CY2021Q4 us-gaap Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
684209000
CY2020Q4 us-gaap Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
190605000
CY2022 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
67620000
CY2021 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
36501000
CY2020 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
21886000
CY2022Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
782316000
CY2022Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
167349000
CY2022Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
614967000
CY2021Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
783843000
CY2021Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
99634000
CY2021Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
684209000
CY2022Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
60870000
CY2022Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
60795000
CY2022Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
60795000
CY2022Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
60795000
CY2022Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
57516000
CY2022Q4 us-gaap Deferred Finance Costs Net
DeferredFinanceCostsNet
17352000
CY2021Q4 us-gaap Deferred Finance Costs Net
DeferredFinanceCostsNet
20212000
CY2022Q4 us-gaap Long Term Debt
LongTermDebt
1457325000
CY2021Q4 us-gaap Long Term Debt
LongTermDebt
1493123000
CY2022Q4 us-gaap Long Term Debt Current
LongTermDebtCurrent
40068000
CY2021Q4 us-gaap Long Term Debt Current
LongTermDebtCurrent
38640000
CY2022Q4 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
1417257000
CY2021Q4 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
1454483000
CY2022Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Next Twelve Months
LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths
40068000
CY2022Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Year Two
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo
47109000
CY2022Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Year Three
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree
48750000
CY2022Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Year Four
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour
438750000
CY2022Q4 us-gaap Long Term Debt Maturities Repayments Of Principal After Year Five
LongTermDebtMaturitiesRepaymentsOfPrincipalAfterYearFive
900000000
CY2022Q4 us-gaap Debt Instrument Carrying Amount
DebtInstrumentCarryingAmount
1474677000
CY2022 bld Debt Instrument Covenant Net Leverage Ratio
DebtInstrumentCovenantNetLeverageRatio
3.50
CY2022 bld Debt Instrument Covenant Minimum Interest Coverage Ratio
DebtInstrumentCovenantMinimumInterestCoverageRatio
3.00
CY2020 bld Fair Value Assets And Liabilities Level1 Level2 And Level3 Transfers Amount
FairValueAssetsAndLiabilitiesLevel1Level2AndLevel3TransfersAmount
0
CY2021 bld Fair Value Assets And Liabilities Level1 Level2 And Level3 Transfers Amount
FairValueAssetsAndLiabilitiesLevel1Level2AndLevel3TransfersAmount
0
CY2022 bld Fair Value Assets And Liabilities Level1 Level2 And Level3 Transfers Amount
FairValueAssetsAndLiabilitiesLevel1Level2AndLevel3TransfersAmount
0
CY2022 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
5008744000
CY2021 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
3486207000
CY2020 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
2718038000
CY2022 us-gaap Operating Income Loss
OperatingIncomeLoss
797164000
CY2021 us-gaap Operating Income Loss
OperatingIncomeLoss
476419000
CY2020 us-gaap Operating Income Loss
OperatingIncomeLoss
355046000
CY2022 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-55029000
CY2021 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-42976000
CY2020 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-31956000
CY2022 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
742135000
CY2021 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
433443000
CY2020 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
323090000
CY2022 us-gaap Property Plant And Equipment Additions
PropertyPlantAndEquipmentAdditions
74212000
CY2021 us-gaap Property Plant And Equipment Additions
PropertyPlantAndEquipmentAdditions
100382000
CY2020 us-gaap Property Plant And Equipment Additions
PropertyPlantAndEquipmentAdditions
44873000
CY2022 us-gaap Depreciation And Amortization
DepreciationAndAmortization
123335000
CY2021 us-gaap Depreciation And Amortization
DepreciationAndAmortization
79390000
CY2020 us-gaap Depreciation And Amortization
DepreciationAndAmortization
62410000
CY2022Q4 us-gaap Assets
Assets
4606831000
CY2021Q4 us-gaap Assets
Assets
4258530000
CY2022Q4 bld Accrued Salaries Wages And Commissions Current
AccruedSalariesWagesAndCommissionsCurrent
75237000
CY2021Q4 bld Accrued Salaries Wages And Commissions Current
AccruedSalariesWagesAndCommissionsCurrent
71664000
CY2022Q4 us-gaap Accrued Insurance Current
AccruedInsuranceCurrent
28870000
CY2021Q4 us-gaap Accrued Insurance Current
AccruedInsuranceCurrent
24425000
CY2022Q4 bld Accrued Customer Rebates Current
AccruedCustomerRebatesCurrent
21561000
CY2021Q4 bld Accrued Customer Rebates Current
AccruedCustomerRebatesCurrent
15625000
CY2022Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
21940000
CY2021Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
14311000
CY2022Q4 bld Accrued Employee Tax Related Liabilities Current
AccruedEmployeeTaxRelatedLiabilitiesCurrent
664000
CY2021Q4 bld Accrued Employee Tax Related Liabilities Current
AccruedEmployeeTaxRelatedLiabilitiesCurrent
12545000
CY2022Q4 bld Accrued Sales And Property Taxes Current
AccruedSalesAndPropertyTaxesCurrent
15757000
CY2021Q4 bld Accrued Sales And Property Taxes Current
AccruedSalesAndPropertyTaxesCurrent
9364000
CY2022Q4 us-gaap Interest Payable Current
InterestPayableCurrent
12146000
CY2021Q4 us-gaap Interest Payable Current
InterestPayableCurrent
8798000
CY2022Q4 us-gaap Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
23195000
CY2021Q4 us-gaap Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
19159000
CY2022Q4 bld Accrued Liabilities And Employee Related Liabilities Current
AccruedLiabilitiesAndEmployeeRelatedLiabilitiesCurrent
199370000
CY2021Q4 bld Accrued Liabilities And Employee Related Liabilities Current
AccruedLiabilitiesAndEmployeeRelatedLiabilitiesCurrent
175891000
CY2021Q4 bld Fica Taxes Deferred Under Cares Act
FicaTaxesDeferredUnderCaresAct
10200000
CY2022 bld Number Of Regional Multiemployer Pension Plans In Which Entity Participates
NumberOfRegionalMultiemployerPensionPlansInWhichEntityParticipates
56
CY2021 us-gaap Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
3712000
CY2022 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
742135000
CY2021 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
433443000
CY2022 us-gaap Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
3406000
CY2021 us-gaap Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
1039000
CY2020 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
323090000
CY2022 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
7016000
CY2021 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
-4123000
CY2022 us-gaap Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
17946000
CY2021 us-gaap Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
12192000
CY2020 us-gaap Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
10251000
CY2022 bld Multiemployer Retirement Plan Expense
MultiemployerRetirementPlanExpense
12788000
CY2021 bld Multiemployer Retirement Plan Expense
MultiemployerRetirementPlanExpense
12308000
CY2020 bld Multiemployer Retirement Plan Expense
MultiemployerRetirementPlanExpense
11754000
CY2022 bld Retirement Plans Expense
RetirementPlansExpense
30734000
CY2021 bld Retirement Plans Expense
RetirementPlansExpense
24500000
CY2020 bld Retirement Plans Expense
RetirementPlansExpense
22005000
CY2022 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%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:12.34%;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:0.81%;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.68%;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:0.81%;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:7.37%;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%;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:7.2%;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:0.81%;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:18.34%;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:0.81%;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:7.37%;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.11%;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:7.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><td style="vertical-align:bottom;white-space:nowrap;width:1.11%;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:7.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:0.81%;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:8.19%;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:12.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:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.81%;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.68%;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.81%;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.58%;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.81%;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.81%;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.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-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.05%;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.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-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;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.81%;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.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:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.81%;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.68%;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.81%;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.58%;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.81%;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.81%;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.74%;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.81%;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.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:justify;margin:0pt;"><b style="font-weight:bold;">Pension Fund</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.81%;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.68%;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.81%;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;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;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.2%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.81%;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.81%;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;">2022</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.05%;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;">2021</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.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:center;margin:0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.81%;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="vertical-align:middle;width:12.34%;background:#cceeff;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="vertical-align:middle;width:0.81%;background:#cceeff;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:middle;white-space:nowrap;width:17.68%;background:#cceeff;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="vertical-align:middle;white-space:nowrap;width:0.81%;background:#cceeff;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:middle;width:7.37%;background:#cceeff;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="vertical-align:middle;white-space:nowrap;width:1%;background:#cceeff;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:middle;width:7.2%;background:#cceeff;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="vertical-align:middle;white-space:nowrap;width:0.81%;background:#cceeff;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:middle;white-space:nowrap;width:18.34%;background:#cceeff;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="vertical-align:middle;white-space:nowrap;width:0.81%;background:#cceeff;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:middle;width:7.37%;background:#cceeff;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,008 </p></td><td style="vertical-align:middle;white-space:nowrap;width:1.11%;background:#cceeff;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:middle;width:7.05%;background:#cceeff;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,326 </p></td><td style="vertical-align:middle;white-space:nowrap;width:1.11%;background:#cceeff;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:middle;width:7.07%;background:#cceeff;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="vertical-align:middle;white-space:nowrap;width:0.81%;background:#cceeff;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:middle;width:8.19%;background:#cceeff;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>
CY2022Q4 bld Performance Bonds Outstanding
PerformanceBondsOutstanding
152434000
CY2021Q4 bld Performance Bonds Outstanding
PerformanceBondsOutstanding
128173000
CY2022Q4 bld License And Insurance Related And Other Bonds Outstanding
LicenseAndInsuranceRelatedAndOtherBondsOutstanding
25439000
CY2021Q4 bld License And Insurance Related And Other Bonds Outstanding
LicenseAndInsuranceRelatedAndOtherBondsOutstanding
21792000
CY2022Q4 bld Bonds Outstanding
BondsOutstanding
177873000
CY2021Q4 bld Bonds Outstanding
BondsOutstanding
149965000
CY2022 us-gaap Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
724231000
CY2021 us-gaap Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
429731000
CY2020 us-gaap Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
323090000
CY2022 us-gaap Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
17904000
CY2020 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
-8087000
CY2022Q4 us-gaap Deferred Tax Assets Other
DeferredTaxAssetsOther
3409000
CY2022 us-gaap Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
136013000
CY2021 us-gaap Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
88930000
CY2022 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
-510000
CY2021 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
1769000
CY2020 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
4017000
CY2022 us-gaap Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
243000
CY2021 us-gaap Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
-194000
CY2021 us-gaap Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
0.003
CY2022 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
186146000
CY2020 us-gaap Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
66792000
CY2022 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
39978000
CY2021 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
109427000
CY2020 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
76067000
CY2021 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
22006000
CY2020 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
13345000
CY2022Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
5114000
CY2021Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
3578000
CY2021 us-gaap Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
2400000
CY2021Q4 us-gaap Deferred Tax Assets Other
DeferredTaxAssetsOther
4219000
CY2022Q4 us-gaap Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
6989000
CY2021Q4 us-gaap Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
5961000
CY2022Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
18980000
CY2021Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
19206000
CY2020 us-gaap Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
0.002
CY2022 us-gaap Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
0.251
CY2021 us-gaap Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
0.252
CY2022Q4 bld Deferred Tax Assets Lease Liability
DeferredTaxAssetsLeaseLiability
13212000
CY2021Q4 bld Deferred Tax Assets Lease Liability
DeferredTaxAssetsLeaseLiability
14367000
CY2022Q4 bld Deferred Tax Assets Long Term Liabilities
DeferredTaxAssetsLongTermLiabilities
10934000
CY2021Q4 bld Deferred Tax Assets Long Term Liabilities
DeferredTaxAssetsLongTermLiabilities
9821000
CY2022Q4 bld Deferred Tax Assets Long Term Lease Liability
DeferredTaxAssetsLongTermLeaseLiability
35451000
CY2021Q4 bld Deferred Tax Assets Long Term Lease Liability
DeferredTaxAssetsLongTermLeaseLiability
33526000
CY2022Q4 us-gaap Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
6655000
CY2021Q4 us-gaap Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
7747000
CY2021Q4 us-gaap Deferred Tax Assets Other Tax Carryforwards
DeferredTaxAssetsOtherTaxCarryforwards
11108000
CY2022Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
100744000
CY2021Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
109533000
CY2022Q4 us-gaap Deferred Tax Liabilities Leasing Arrangements
DeferredTaxLiabilitiesLeasingArrangements
49120000
CY2021Q4 us-gaap Deferred Tax Liabilities Leasing Arrangements
DeferredTaxLiabilitiesLeasingArrangements
48300000
CY2022Q4 us-gaap Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
46031000
CY2021Q4 us-gaap Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
42150000
CY2022Q4 us-gaap Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
254101000
CY2021Q4 us-gaap Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
263327000
CY2022Q4 us-gaap Deferred Tax Liabilities Other
DeferredTaxLiabilitiesOther
2973000
CY2021Q4 us-gaap Deferred Tax Liabilities Other
DeferredTaxLiabilitiesOther
2094000
CY2022Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
352225000
CY2021Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
355871000
CY2022Q4 us-gaap Deferred Tax Liabilities
DeferredTaxLiabilities
251481000
CY2021Q4 us-gaap Deferred Tax Liabilities
DeferredTaxLiabilities
246338000
CY2021Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
0
CY2022Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
0
CY2022Q4 us-gaap Deferred Tax Liabilities
DeferredTaxLiabilities
251500000
CY2021Q4 us-gaap Deferred Tax Liabilities
DeferredTaxLiabilities
246300000
CY2021Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
1900000
CY2021Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
248200000
CY2022Q4 us-gaap Deferred Tax Assets Operating Loss Carryforwards Subject To Expiration
DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration
2100000
CY2021Q4 us-gaap Deferred Tax Assets Operating Loss Carryforwards Subject To Expiration
DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration
5300000
CY2022 us-gaap Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
0.210
CY2021 us-gaap Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
0.210
CY2020 us-gaap Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
0.210
CY2022 us-gaap Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
0.042
CY2021 us-gaap Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
0.043
CY2020 us-gaap Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
0.042
CY2022 us-gaap Effective Income Tax Rate Reconciliation Nondeductible Expense Share Based Compensation Cost
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
0.002
CY2021 us-gaap Effective Income Tax Rate Reconciliation Nondeductible Expense Share Based Compensation Cost
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
0.005
CY2020 us-gaap Effective Income Tax Rate Reconciliation Nondeductible Expense Share Based Compensation Cost
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
0.021
CY2022 bld Effective Income Tax Rate Reconciliation Non Deductible Non Taxable Expense Percent
EffectiveIncomeTaxRateReconciliationNonDeductibleNonTaxableExpensePercent
0.001
CY2021 bld Effective Income Tax Rate Reconciliation Non Deductible Non Taxable Expense Percent
EffectiveIncomeTaxRateReconciliationNonDeductibleNonTaxableExpensePercent
0.001
CY2020 bld Effective Income Tax Rate Reconciliation Non Deductible Non Taxable Expense Percent
EffectiveIncomeTaxRateReconciliationNonDeductibleNonTaxableExpensePercent
0.002
CY2020 us-gaap Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
0.235
CY2022 us-gaap Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
1700000
CY2022 bld Effective Income Tax Rate Reconciliation Effect Of Rates Different Than Statutory
EffectiveIncomeTaxRateReconciliationEffectOfRatesDifferentThanStatutory
0.001
CY2022 us-gaap Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
-0.001
CY2020 us-gaap Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
7800000
CY2022 us-gaap Net Income Loss
NetIncomeLoss
555989000
CY2021 us-gaap Net Income Loss
NetIncomeLoss
324016000
CY2020 us-gaap Net Income Loss
NetIncomeLoss
247023000
CY2022 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
32213839
CY2021 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
32801906
CY2020 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
32917971
CY2022 bld Incremental Common Shares Attributable To Dilutive Effect Of Stock Options
IncrementalCommonSharesAttributableToDilutiveEffectOfStockOptions
105205
CY2021 bld Incremental Common Shares Attributable To Dilutive Effect Of Stock Options
IncrementalCommonSharesAttributableToDilutiveEffectOfStockOptions
130150
CY2020 bld Incremental Common Shares Attributable To Dilutive Effect Of Stock Options
IncrementalCommonSharesAttributableToDilutiveEffectOfStockOptions
138354
CY2022 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
32440405
CY2021 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
33146171
CY2020 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
33299986
CY2022 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
17.26
CY2021 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
9.88
CY2020 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
7.50
CY2022 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
17.14
CY2021 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
9.78
CY2020 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
7.42
CY2022 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
45296
CY2021 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
27253
CY2020 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
35221
CY2022 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
12310000
CY2021 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
11316000
CY2020 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
14752000
CY2022 us-gaap Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
1733000
CY2021 us-gaap Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
2419000
CY2020 us-gaap Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
7772000
CY2022 us-gaap Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested And Expected To Vest Exercisable Weighted Average Remaining Contractual Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1
P5Y2M12D
CY2022 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.77%;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.52%;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.52%;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.52%;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.52%;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.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;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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="vertical-align:bottom;white-space:nowrap;width:38.7%;background:#ffffff;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, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:59.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-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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="vertical-align:bottom;width:18.6%;background:#ffffff;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 </b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">on Unvested Awards</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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.58%;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</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">Remaining</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">Compensation Expense Period</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:59.77%;background:#cceeff;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="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;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.52%;background:#cceeff;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="vertical-align:bottom;white-space:nowrap;width:17.07%;background:#cceeff;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;"> 13,408</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;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.52%;background:#cceeff;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%;background:#cceeff;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></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:59.77%;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.52%;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.52%;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;"> 528</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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.52%;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.6</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.77%;background:#cceeff;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="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;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.52%;background:#cceeff;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="vertical-align:bottom;white-space:nowrap;width:17.07%;background:#cceeff;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;"> 13,936</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;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.52%;background:#cceeff;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%;background:#cceeff;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><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>
CY2022Q4 us-gaap Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized Share Based Awards Other Than Options
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
13408000
CY2022 bld Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Outstanding Weighted Average Remaining Vesting Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingVestingPeriod
P1Y
CY2022Q4 us-gaap Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized Stock Options
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions
528000
CY2022 bld Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Remaining Vesting Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingVestingPeriod
P0Y7M6D
CY2022Q4 us-gaap Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
13936000
CY2022 us-gaap Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
1300000
CY2021 us-gaap Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
15300000
CY2022 us-gaap Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
1390667
CY2021 us-gaap Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
183136
CY2022 us-gaap Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
250050000
CY2021 us-gaap Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
35556000

Files In Submission

Name View Source Status
bld-20221231_def.xml Edgar Link unprocessable
bld-20221231_cal.xml Edgar Link unprocessable
0001558370-23-001903-index-headers.html Edgar Link pending
0001558370-23-001903-index.html Edgar Link pending
0001558370-23-001903.txt Edgar Link pending
0001558370-23-001903-xbrl.zip Edgar Link pending
bld-20221231.xsd Edgar Link pending
bld-20221231x10k.htm Edgar Link pending
bld-20221231x10k002.jpg Edgar Link pending
bld-20221231x10k003.jpg Edgar Link pending
bld-20221231x10k004.jpg Edgar Link pending
bld-20221231x10k005.jpg Edgar Link pending
bld-20221231x10k006.jpg Edgar Link pending
bld-20221231xex10d13.htm Edgar Link pending
bld-20221231xex10d14.htm Edgar Link pending
bld-20221231xex10d15.htm Edgar Link pending
bld-20221231xex21d1.htm Edgar Link pending
bld-20221231xex23d1.htm Edgar Link pending
bld-20221231xex31d1.htm Edgar Link pending
bld-20221231xex31d2.htm Edgar Link pending
bld-20221231xex32d1.htm Edgar Link pending
bld-20221231xex32d2.htm Edgar Link pending
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
FilingSummary.xml Edgar Link unprocessable
bld-20221231_lab.xml Edgar Link unprocessable
bld-20221231_pre.xml Edgar Link unprocessable
bld-20221231x10k_htm.xml Edgar Link completed
R37.htm Edgar Link pending
R38.htm Edgar Link pending
R39.htm Edgar Link pending
R4.htm Edgar Link pending
R40.htm Edgar Link pending
R41.htm Edgar Link pending
R42.htm Edgar Link pending
R43.htm Edgar Link pending
R44.htm Edgar Link pending
R45.htm Edgar Link pending
R46.htm Edgar Link pending
R47.htm Edgar Link pending
R48.htm Edgar Link pending
R49.htm Edgar Link pending
R5.htm Edgar Link pending
R50.htm Edgar Link pending
R51.htm Edgar Link pending
R52.htm Edgar Link pending
R53.htm Edgar Link pending
R54.htm Edgar Link pending
R55.htm Edgar Link pending
R56.htm Edgar Link pending
R57.htm Edgar Link pending
R58.htm Edgar Link pending
R59.htm Edgar Link pending
R6.htm Edgar Link pending
R60.htm Edgar Link pending
R61.htm Edgar Link pending
R62.htm Edgar Link pending
R63.htm Edgar Link pending
R64.htm Edgar Link pending
R65.htm Edgar Link pending
R66.htm Edgar Link pending
R67.htm Edgar Link pending
R68.htm Edgar Link pending
R69.htm Edgar Link pending
R7.htm Edgar Link pending
R70.htm Edgar Link pending
R71.htm Edgar Link pending
R72.htm Edgar Link pending
R73.htm Edgar Link pending
R74.htm Edgar Link pending
R75.htm Edgar Link pending
R76.htm Edgar Link pending
R77.htm Edgar Link pending
R78.htm Edgar Link pending
R79.htm Edgar Link pending
R8.htm Edgar Link pending
R80.htm Edgar Link pending
R9.htm Edgar Link pending
report.css Edgar Link pending
Show.js Edgar Link pending