| | | | | | | | | | | | | | | | | | | | | |
<?xml version="1.0" encoding="windows-1252"?> |
<FilingSummary> |
| <Version> 3.22.2 </Version> |
| <ProcessingTime/> |
| <ReportFormat> html </ReportFormat> |
| <ContextCount> 307 </ContextCount> |
| <ElementCount> 330 </ElementCount> |
| <EntityCount> 1 </EntityCount> |
| <FootnotesReported> false </FootnotesReported> |
| <SegmentCount> 79 </SegmentCount> |
| <ScenarioCount> 0 </ScenarioCount> |
| <TuplesReported> false </TuplesReported> |
| <UnitCount> 6 </UnitCount> |
| <MyReports> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R1.htm </HtmlFileName> |
| | | <LongName> 00090 - Document - Document and Entity Information </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DocumentDocumentAndEntityInformation </Role> |
| | | <ShortName> Document and Entity Information </ShortName> |
| | | <MenuCategory> Cover </MenuCategory> |
| | | <Position> 1 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R2.htm </HtmlFileName> |
| | | <LongName> 00100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/StatementCondensedConsolidatedBalanceSheets </Role> |
| | | <ShortName> CONDENSED CONSOLIDATED BALANCE SHEETS </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 2 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R3.htm </HtmlFileName> |
| | | <LongName> 00105 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical </Role> |
| | | <ShortName> CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical) </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 3 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R4.htm </HtmlFileName> |
| | | <LongName> 00200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/StatementCondensedConsolidatedStatementsOfOperations </Role> |
| | | <ShortName> CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 4 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R5.htm </HtmlFileName> |
| | | <LongName> 00300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome </Role> |
| | | <ShortName> CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 5 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R6.htm </HtmlFileName> |
| | | <LongName> 00400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/StatementCondensedConsolidatedStatementsOfCashFlows </Role> |
| | | <ShortName> CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 6 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R7.htm </HtmlFileName> |
| | | <LongName> 00500 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CHANGES IN EQUITY </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/StatementCondensedConsolidatedStatementsOfChangesInEquity </Role> |
| | | <ShortName> CONDENSED CONSOLIDATED STATEMENTS OF CHANGES IN EQUITY </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 7 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R8.htm </HtmlFileName> |
| | | <LongName> 00505 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CHANGES IN EQUITY (Parenthetical) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/StatementCondensedConsolidatedStatementsOfChangesInEquityParenthetical </Role> |
| | | <ShortName> CONDENSED CONSOLIDATED STATEMENTS OF CHANGES IN EQUITY (Parenthetical) </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 8 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R9.htm </HtmlFileName> |
| | | <LongName> 10101 - Disclosure - Basis of Presentation </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureBasisOfPresentation </Role> |
| | | <ShortName> Basis of Presentation </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 9 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R10.htm </HtmlFileName> |
| | | <LongName> 10201 - Disclosure - Accounting Policies </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureAccountingPolicies </Role> |
| | | <ShortName> Accounting Policies </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 10 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R11.htm </HtmlFileName> |
| | | <LongName> 10301 - Disclosure - Revenue Recognition </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureRevenueRecognition </Role> |
| | | <ShortName> Revenue Recognition </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 11 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R12.htm </HtmlFileName> |
| | | <LongName> 10401 - Disclosure - Goodwill and Other Intangibles </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureGoodwillAndOtherIntangibles </Role> |
| | | <ShortName> Goodwill and Other Intangibles </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 12 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R13.htm </HtmlFileName> |
| | | <LongName> 10501 - Disclosure - Long-Term Debt </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureLongTermDebt </Role> |
| | | <ShortName> Long-Term Debt </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 13 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R14.htm </HtmlFileName> |
| | | <LongName> 10601 - Disclosure - Fair Value Measurements </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureFairValueMeasurements </Role> |
| | | <ShortName> Fair Value Measurements </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 14 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R15.htm </HtmlFileName> |
| | | <LongName> 10701 - Disclosure - Segment Information </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureSegmentInformation </Role> |
| | | <ShortName> Segment Information </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 15 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R16.htm </HtmlFileName> |
| | | <LongName> 10801 - Disclosure - Leases </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureLeases </Role> |
| | | <ShortName> Leases </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 16 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R17.htm </HtmlFileName> |
| | | <LongName> 10901 - Disclosure - Income Taxes </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureIncomeTaxes </Role> |
| | | <ShortName> Income Taxes </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 17 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R18.htm </HtmlFileName> |
| | | <LongName> 11001 - Disclosure - Net Income Per Share </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureNetIncomePerShare </Role> |
| | | <ShortName> Net Income Per Share </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 18 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R19.htm </HtmlFileName> |
| | | <LongName> 11101 - Disclosure - Share-Based Compensation </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureShareBasedCompensation </Role> |
| | | <ShortName> Share-Based Compensation </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 19 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R20.htm </HtmlFileName> |
| | | <LongName> 11201 - Disclosure - Share Repurchase Program </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureShareRepurchaseProgram </Role> |
| | | <ShortName> Share Repurchase Program </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 20 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R21.htm </HtmlFileName> |
| | | <LongName> 11301 - Disclosure - Business Combinations </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureBusinessCombinations </Role> |
| | | <ShortName> Business Combinations </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 21 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R22.htm </HtmlFileName> |
| | | <LongName> 11401 - Disclosure - Accrued Liabilities </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureAccruedLiabilities </Role> |
| | | <ShortName> Accrued Liabilities </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 22 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R23.htm </HtmlFileName> |
| | | <LongName> 11501 - Disclosure - Other Commitments and Contingencies </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureOtherCommitmentsAndContingencies </Role> |
| | | <ShortName> Other Commitments and Contingencies </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 23 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R24.htm </HtmlFileName> |
| | | <LongName> 20202 - Disclosure - Accounting Policies (Policies) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureAccountingPoliciesPolicies </Role> |
| | | <ShortName> Accounting Policies (Policies) </ShortName> |
| | | <MenuCategory> Policies </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureAccountingPolicies </ParentRole> |
| | | <Position> 24 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R25.htm </HtmlFileName> |
| | | <LongName> 30203 - Disclosure - Accounting Policies (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureAccountingPoliciesTables </Role> |
| | | <ShortName> Accounting Policies (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureAccountingPolicies </ParentRole> |
| | | <Position> 25 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R26.htm </HtmlFileName> |
| | | <LongName> 30303 - Disclosure - Revenue Recognition (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureRevenueRecognitionTables </Role> |
| | | <ShortName> Revenue Recognition (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureRevenueRecognition </ParentRole> |
| | | <Position> 26 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R27.htm </HtmlFileName> |
| | | <LongName> 30403 - Disclosure - Goodwill and Other Intangibles (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureGoodwillAndOtherIntangiblesTables </Role> |
| | | <ShortName> Goodwill and Other Intangibles (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureGoodwillAndOtherIntangibles </ParentRole> |
| | | <Position> 27 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R28.htm </HtmlFileName> |
| | | <LongName> 30503 - Disclosure - Long-Term Debt (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureLongTermDebtTables </Role> |
| | | <ShortName> Long-Term Debt (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureLongTermDebt </ParentRole> |
| | | <Position> 28 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R29.htm </HtmlFileName> |
| | | <LongName> 30603 - Disclosure - Fair Value Measurements (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureFairValueMeasurementsTables </Role> |
| | | <ShortName> Fair Value Measurements (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureFairValueMeasurements </ParentRole> |
| | | <Position> 29 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R30.htm </HtmlFileName> |
| | | <LongName> 30703 - Disclosure - Segment Information (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureSegmentInformationTables </Role> |
| | | <ShortName> Segment Information (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureSegmentInformation </ParentRole> |
| | | <Position> 30 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R31.htm </HtmlFileName> |
| | | <LongName> 30803 - Disclosure - Leases (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureLeasesTables </Role> |
| | | <ShortName> Leases (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureLeases </ParentRole> |
| | | <Position> 31 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R32.htm </HtmlFileName> |
| | | <LongName> 31003 - Disclosure - Net Income Per Share (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureNetIncomePerShareTables </Role> |
| | | <ShortName> Net Income Per Share (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureNetIncomePerShare </ParentRole> |
| | | <Position> 32 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R33.htm </HtmlFileName> |
| | | <LongName> 31103 - Disclosure - Share-Based Compensation (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureShareBasedCompensationTables </Role> |
| | | <ShortName> Share-Based Compensation (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureShareBasedCompensation </ParentRole> |
| | | <Position> 33 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R34.htm </HtmlFileName> |
| | | <LongName> 31203 - Disclosure - Share Repurchase Program (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureShareRepurchaseProgramTables </Role> |
| | | <ShortName> Share Repurchase Program (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureShareRepurchaseProgram </ParentRole> |
| | | <Position> 34 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R35.htm </HtmlFileName> |
| | | <LongName> 31303 - Disclosure - Business Combinations (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureBusinessCombinationsTables </Role> |
| | | <ShortName> Business Combinations (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureBusinessCombinations </ParentRole> |
| | | <Position> 35 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R36.htm </HtmlFileName> |
| | | <LongName> 31403 - Disclosure - Accrued Liabilities (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureAccruedLiabilitiesTables </Role> |
| | | <ShortName> Accrued Liabilities (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureAccruedLiabilities </ParentRole> |
| | | <Position> 36 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R37.htm </HtmlFileName> |
| | | <LongName> 31503 - Disclosure - Other Commitments and Contingencies (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureOtherCommitmentsAndContingenciesTables </Role> |
| | | <ShortName> Other Commitments and Contingencies (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureOtherCommitmentsAndContingencies </ParentRole> |
| | | <Position> 37 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R38.htm </HtmlFileName> |
| | | <LongName> 40101 - Disclosure - Basis of Presentation (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureBasisOfPresentationDetails </Role> |
| | | <ShortName> Basis of Presentation (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureBasisOfPresentation </ParentRole> |
| | | <Position> 38 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R39.htm </HtmlFileName> |
| | | <LongName> 40301 - Disclosure - Revenue Recognition - Disaggregation (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureRevenueRecognitionDisaggregationDetails </Role> |
| | | <ShortName> Revenue Recognition - Disaggregation (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 39 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R40.htm </HtmlFileName> |
| | | <LongName> 40302 - Disclosure - Revenue Recognition - Other (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureRevenueRecognitionOtherDetails </Role> |
| | | <ShortName> Revenue Recognition - Other (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 40 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R41.htm </HtmlFileName> |
| | | <LongName> 40401 - Disclosure - Goodwill and Other Intangibles - Goodwill (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureGoodwillAndOtherIntangiblesGoodwillDetails </Role> |
| | | <ShortName> Goodwill and Other Intangibles - Goodwill (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 41 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R42.htm </HtmlFileName> |
| | | <LongName> 40402 - Disclosure - Goodwill and Other Intangibles - Other intangible assets (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureGoodwillAndOtherIntangiblesOtherIntangibleAssetsDetails </Role> |
| | | <ShortName> Goodwill and Other Intangibles - Other intangible assets (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 42 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R43.htm </HtmlFileName> |
| | | <LongName> 40501 - Disclosure - Long-Term Debt - Reconciliation (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureLongTermDebtReconciliationDetails </Role> |
| | | <ShortName> Long-Term Debt - Reconciliation (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 43 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R44.htm </HtmlFileName> |
| | | <LongName> 40502 - Disclosure - Long-Term Debt - Schedule of debt maturity (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureLongTermDebtScheduleOfDebtMaturityDetails </Role> |
| | | <ShortName> Long-Term Debt - Schedule of debt maturity (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 44 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R45.htm </HtmlFileName> |
| | | <LongName> 40503 - Disclosure - Long-Term Debt - Key Terms of Credit Agreement (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureLongTermDebtKeyTermsOfCreditAgreementDetails </Role> |
| | | <ShortName> Long-Term Debt - Key Terms of Credit Agreement (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 45 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R46.htm </HtmlFileName> |
| | | <LongName> 40504 - Disclosure - Long-Term Debt - Revolving Facility (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureLongTermDebtRevolvingFacilityDetails </Role> |
| | | <ShortName> Long-Term Debt - Revolving Facility (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 46 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R47.htm </HtmlFileName> |
| | | <LongName> 40505 - Disclosure - Long-Term Debt - Senior Notes and Equipment Notes (Details) </LongName> |
| | | <ReportType> Notes </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureLongTermDebtSeniorNotesAndEquipmentNotesDetails </Role> |
| | | <ShortName> Long-Term Debt - Senior Notes and Equipment Notes (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 47 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R48.htm </HtmlFileName> |
| | | <LongName> 40506 - Disclosure - Long-Term Debt - Other (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureLongTermDebtOtherDetails </Role> |
| | | <ShortName> Long-Term Debt - Other (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 48 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R49.htm </HtmlFileName> |
| | | <LongName> 40601 - Disclosure - Fair Value Measurements (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureFairValueMeasurementsDetails </Role> |
| | | <ShortName> Fair Value Measurements (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureFairValueMeasurementsTables </ParentRole> |
| | | <Position> 49 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R50.htm </HtmlFileName> |
| | | <LongName> 40701 - Disclosure - Segment Information (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureSegmentInformationDetails </Role> |
| | | <ShortName> Segment Information (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureSegmentInformationTables </ParentRole> |
| | | <Position> 50 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R51.htm </HtmlFileName> |
| | | <LongName> 40801 - Disclosure - Leases - Assets and liabilities (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureLeasesAssetsAndLiabilitiesDetails </Role> |
| | | <ShortName> Leases - Assets and liabilities (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 51 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R52.htm </HtmlFileName> |
| | | <LongName> 40802 - Disclosure - Leases - Components of lease expense (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureLeasesComponentsOfLeaseExpenseDetails </Role> |
| | | <ShortName> Leases - Components of lease expense (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 52 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R53.htm </HtmlFileName> |
| | | <LongName> 40803 - Disclosure - Leases - Future minimum lease payments (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureLeasesFutureMinimumLeasePaymentsDetails </Role> |
| | | <ShortName> Leases - Future minimum lease payments (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 53 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R54.htm </HtmlFileName> |
| | | <LongName> 40804 - Disclosure - Leases - Cash flows and other (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureLeasesCashFlowsAndOtherDetails </Role> |
| | | <ShortName> Leases - Cash flows and other (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 54 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R55.htm </HtmlFileName> |
| | | <LongName> 40901 - Disclosure - Income Taxes (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureIncomeTaxesDetails </Role> |
| | | <ShortName> Income Taxes (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureIncomeTaxes </ParentRole> |
| | | <Position> 55 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R56.htm </HtmlFileName> |
| | | <LongName> 41001 - Disclosure - Net Income Per Share - Calculation (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureNetIncomePerShareCalculationDetails </Role> |
| | | <ShortName> Net Income Per Share - Calculation (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 56 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R57.htm </HtmlFileName> |
| | | <LongName> 41002 - Disclosure - Net Income Per Share - Anti-dilutive common stock equivalents (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureNetIncomePerShareAntiDilutiveCommonStockEquivalentsDetails </Role> |
| | | <ShortName> Net Income Per Share - Anti-dilutive common stock equivalents (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 57 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R58.htm </HtmlFileName> |
| | | <LongName> 41101 - Disclosure - Share-Based Compensation - Expense (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureShareBasedCompensationExpenseDetails </Role> |
| | | <ShortName> Share-Based Compensation - Expense (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 58 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R59.htm </HtmlFileName> |
| | | <LongName> 41102 - Disclosure - Share-Based Compensation - Activity (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureShareBasedCompensationActivityDetails </Role> |
| | | <ShortName> Share-Based Compensation - Activity (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 59 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R60.htm </HtmlFileName> |
| | | <LongName> 41201 - Disclosure - Share Repurchase Program (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureShareRepurchaseProgramDetails </Role> |
| | | <ShortName> Share Repurchase Program (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureShareRepurchaseProgramTables </ParentRole> |
| | | <Position> 60 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R61.htm </HtmlFileName> |
| | | <LongName> 41301 - Disclosure - Business Combinations - Summary (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureBusinessCombinationsSummaryDetails </Role> |
| | | <ShortName> Business Combinations - Summary (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 61 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R62.htm </HtmlFileName> |
| | | <LongName> 41401 - Disclosure - Accrued Liabilities (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureAccruedLiabilitiesDetails </Role> |
| | | <ShortName> Accrued Liabilities (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureAccruedLiabilitiesTables </ParentRole> |
| | | <Position> 62 </Position> |
| | | </Report> |
| | <Report instance="bld-20220630x10q.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R63.htm </HtmlFileName> |
| | | <LongName> 41501 - Disclosure - Other Commitments and Contingencies (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.topbuild.com/role/DisclosureOtherCommitmentsAndContingenciesDetails </Role> |
| | | <ShortName> Other Commitments and Contingencies (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.topbuild.com/role/DisclosureOtherCommitmentsAndContingenciesTables </ParentRole> |
| | | <Position> 63 </Position> |
| | | </Report> |
| | <Report> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <LongName> All Reports </LongName> |
| | | <ReportType> Book </ReportType> |
| | | <ShortName> All Reports </ShortName> |
| | | </Report> |
| | </MyReports> |
| <InputFiles> |
| | <File doctype="10-Q" original="bld-20220630x10q.htm"> bld-20220630x10q.htm </File> |
| | <File> bld-20220630.xsd </File> |
| | <File> bld-20220630_cal.xml </File> |
| | <File> bld-20220630_def.xml </File> |
| | <File> bld-20220630_lab.xml </File> |
| | <File> bld-20220630_pre.xml </File> |
| | <File> bld-20220630xex31d1.htm </File> |
| | <File> bld-20220630xex31d2.htm </File> |
| | <File> bld-20220630xex32d1.htm </File> |
| | <File> bld-20220630xex32d2.htm </File> |
| | </InputFiles> |
| <SupplementalFiles/> |
| <BaseTaxonomies> |
| | <BaseTaxonomy items="850"> http://fasb.org/us-gaap/2022 </BaseTaxonomy> |
| | <BaseTaxonomy items="29"> http://xbrl.sec.gov/dei/2022 </BaseTaxonomy> |
| | </BaseTaxonomies> |
| <HasPresentationLinkbase> true </HasPresentationLinkbase> |
| <HasCalculationLinkbase> true </HasCalculationLinkbase> |
| </FilingSummary> |