XML 60 R50.htm IDEA: XBRL DOCUMENT
v3.23.3

Share-Based Compensation - Activity (Details) - USD ($) |  |  |  | 3 Months Ended | 9 Months Ended |
--- | --- | --- | --- | --- | --- | ---
Feb. 21, 2023 | Feb. 15, 2022 | Feb. 16, 2021 | Sep. 30, 2023 | Jun. 30, 2023 | Mar. 31, 2023 | Sep. 30, 2022 | Jun. 30, 2022 | Mar. 31, 2022 | Sep. 30, 2023 | Sep. 30, 2022 | Sep. 30, 2021 | Dec. 31, 2022
Stock Options, Number of Shares |  |  |  |  |  |  |  |  |  |  |  |  |
Converted/Exercised (in shares) |  |  |  | (17,409) | (4,762) | (28,840) | (7,111) | (5,835) | (12,269) |  |  |  |
Stock options, additional disclosures |  |  |  |  |  |  |  |  |  |  |  |  |
Weighted average remaining contractual term for vested stock options |  |  |  |  |  |  |  |  |  | 5 years 7 months 6 days |  |  |
Unrecognized share-based compensation expense |  |  |  |  |  |  |  |  |  |  |  |  |
Total unrecognized compensation expense related to unvested awards |  |  |  | $ 19,297,000 |  |  |  |  |  | $ 19,297,000 |  |  |
Restricted Stock Awards |  |  |  |  |  |  |  |  |  |  |  |  |
Restricted Stock Awards, Number of Shares |  |  |  |  |  |  |  |  |  |  |  |  |
Balance at beginning of period (in shares) |  |  |  |  |  | 173,200 |  |  |  | 173,200 |  |  |
Granted (in shares) |  |  |  |  |  |  |  |  |  | 105,100 |  |  |
Converted/Exercised (in shares) |  |  |  |  |  |  |  |  |  | (100,700) |  |  |
Forfeited/Expired (in shares) |  |  |  |  |  |  |  |  |  | (8,000.0) |  |  |
Balance at end of period (in shares) |  |  |  | 169,600 |  |  |  |  |  | 169,600 |  |  |
Restricted Stock Awards, Weighted Average Grant Date Fair Value Per Share |  |  |  |  |  |  |  |  |  |  |  |  |
Balance at beginning of period (in dollars per share) |  |  |  |  |  | $ 195.06 |  |  |  | $ 195.06 |  |  |
Granted (in dollars per share) |  |  |  |  |  |  |  |  |  | 202.08 |  |  |
Converted/Exercised (in dollars per share) |  |  |  |  |  |  |  |  |  | 147.25 |  |  |
Forfeited/Expired (in dollars per share) |  |  |  |  |  |  |  |  |  | 229.50 |  |  |
Balance at end of period (in dollars per share) |  |  |  | $ 227.31 |  |  |  |  |  | $ 227.31 |  |  |
Unrecognized share-based compensation expense |  |  |  |  |  |  |  |  |  |  |  |  |
RSAs, Unrecognized Compensation Expense on Unvested Awards |  |  |  | $ 19,121,000 |  |  |  |  |  | $ 19,121,000 |  |  |
Weighted Average Remaining Compensation Expense Period |  |  |  |  |  |  |  |  |  | 1 year |  |  |
Assumptions used to estimate the fair values of the awards granted: |  |  |  |  |  |  |  |  |  |  |  |  |
Measurement period (years) |  |  |  |  |  |  |  |  |  | 2 years 10 months 9 days | 2 years 10 months 13 days | 2 years 10 months 13 days |
Risk free interest rate (as a percent) |  |  |  |  |  |  |  |  |  | 4.42% | 1.76% | 0.22% |
Dividend yield (as a percent) |  |  |  |  |  |  |  |  |  | 0.00% | 0.00% | 0.00% |
Estimated fair value of market-based RSAs at grant date (in dollars per share) |  |  |  |  |  |  |  |  |  | $ 270.64 | $ 298.20 | $ 298.66 |
Restricted Stock Awards | Performance-based conditions |  |  |  |  |  |  |  |  |  |  |  |  |
Restricted stock awards, additional disclosures |  |  |  |  |  |  |  |  |  |  |  |  |
Grant date fair value | $ 4,128,000 | $ 3,042,000 | $ 2,189,000 |  |  |  |  |  |  |  |  |  |
Restricted Stock Awards | Performance-based conditions | Payout Range-0% |  |  |  |  |  |  |  |  |  |  |  |  |
Restricted stock awards, additional disclosures |  |  |  |  |  |  |  |  |  |  |  |  |
Payout range (as a percent) | 0.00% | 0.00% | 0.00% |  |  |  |  |  |  |  |  |  |
Restricted Stock Awards | Performance-based conditions | Payout Range-25% |  |  |  |  |  |  |  |  |  |  |  |  |
Restricted stock awards, additional disclosures |  |  |  |  |  |  |  |  |  |  |  |  |
Payout range (as a percent) | 25.00% | 25.00% | 25.00% |  |  |  |  |  |  |  |  |  |
Related expenses | $ 1,032,000 | $ 761,000 | $ 547,000 |  |  |  |  |  |  |  |  |  |
Restricted Stock Awards | Performance-based conditions | Payout Range-100% |  |  |  |  |  |  |  |  |  |  |  |  |
Restricted stock awards, additional disclosures |  |  |  |  |  |  |  |  |  |  |  |  |
Payout range (as a percent) | 100.00% | 100.00% | 100.00% |  |  |  |  |  |  |  |  |  |
Related expenses | $ 4,128,000 | $ 3,042,000 | $ 2,189,000 |  |  |  |  |  |  |  |  |  |
Restricted Stock Awards | Performance-based conditions | Payout Range-200% |  |  |  |  |  |  |  |  |  |  |  |  |
Restricted stock awards, additional disclosures |  |  |  |  |  |  |  |  |  |  |  |  |
Payout range (as a percent) | 200.00% | 200.00% | 200.00% |  |  |  |  |  |  |  |  |  |
Related expenses | $ 8,256,000 | $ 6,084,000 | $ 4,378,000 |  |  |  |  |  |  |  |  |  |
RSAs granted February 17, 2020 | Performance-based conditions |  |  |  |  |  |  |  |  |  |  |  |  |
Restricted stock awards, additional disclosures |  |  |  |  |  |  |  |  |  |  |  |  |
Cumulative period of achievement |  |  |  |  |  | 3 years |  |  |  | 3 years |  |  |
Cumulative achievement percentage |  |  |  |  |  | 200.00% |  |  |  |  |  |  |
Total compensation expense recognized over the performance period, net of forfeitures |  |  |  |  |  |  |  |  |  | $ 5,000,000.0 |  |  |
Employee Stock Option [Member] |  |  |  |  |  |  |  |  |  |  |  |  |
Stock Options, Number of Shares |  |  |  |  |  |  |  |  |  |  |  |  |
Balance at beginning of period (in shares) |  |  |  |  |  | 182,200 |  |  |  | 182,200 |  |  |
Converted/Exercised (in shares) |  |  |  |  |  |  |  |  |  | (51,000.0) |  |  |
Balance at end of period (in shares) |  |  |  | 131,200 |  |  |  |  |  | 131,200 |  |  |
Stock Options, Weighted Average Grant Date Fair Value Per Share |  |  |  |  |  |  |  |  |  |  |  |  |
Balance at beginning of period (in dollars per share) |  |  |  |  |  | $ 32.25 |  |  |  | $ 32.25 |  |  |
Converted/Exercised (in dollars per share) |  |  |  |  |  |  |  |  |  | 18.67 |  |  |
Balance at end of period (in dollars per share) |  |  |  | $ 37.67 |  |  |  |  |  | 37.67 |  |  |
Stock Options, Weighted Average Exercise Price Per Share |  |  |  |  |  |  |  |  |  |  |  |  |
Balance at beginning of period (in dollars per share) |  |  |  |  |  | $ 86.79 |  |  |  | 86.79 |  |  |
Converted/Exercised (in dollars per share) |  |  |  |  |  |  |  |  |  | 50.71 |  |  |
Balance at end of period (in dollars per share) |  |  |  | $ 100.82 |  |  |  |  |  | $ 100.82 |  |  |
Stock options, additional disclosures |  |  |  |  |  |  |  |  |  |  |  |  |
Aggregate intrinsic value |  |  |  | $ 19,777,700 |  |  |  |  |  | $ 19,777,700 |  |  | $ 13,992,300
Converted/Exercised aggregate intrinsic value |  |  |  |  |  |  |  |  |  | $ 9,141,200 |  |  |
Exercisable, Number of shares |  |  |  | 123,700 |  |  |  |  |  | 123,700 |  |  |
Exercisable, Weighted Average Grant Date Fair Value Per Share |  |  |  |  |  |  |  |  |  | $ 34.55 |  |  |
Exercisable Weighted Average Exercise Price Per Share |  |  |  | $ 93.99 |  |  |  |  |  | $ 93.99 |  |  |
Exercisable, Aggregate Intrinsic Value |  |  |  | $ 19,502,800 |  |  |  |  |  | $ 19,502,800 |  |  |
Unrecognized share-based compensation expense |  |  |  |  |  |  |  |  |  |  |  |  |
Stock options, Unrecognized Compensation Expense on Unvested Awards |  |  |  | $ 176,000 |  |  |  |  |  | $ 176,000 |  |  |
Weighted Average Remaining Compensation Expense Period |  |  |  |  |  |  |  |  |  | 2 months 12 days |  |  |

X
- Definition The number of equity-based payment instruments, excluding stock (or unit) options, that were converted/exercised during the reporting period. + References No definition available. + Details
Name: | bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsConvertedExercisedInPeriod
Namespace Prefix: | bld_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | duration

X
- Definition Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were converted/exercised. + References No definition available. + Details
Name: | bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsConvertedExercisedWeightedAverageGrantDateFairValue
Namespace Prefix: | bld_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited or expired during the reporting period. + References No definition available. + Details
Name: | bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedOrExpiredInPeriod
Namespace Prefix: | bld_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | duration

X
- Definition Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were forfeited or expired. + References No definition available. + Details
Name: | bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedOrExpiredWeightedAverageGrantDateFairValue
Namespace Prefix: | bld_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition Represents the estimated fair value of the awards granted. + References No definition available. + Details
Name: | bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsEstimatedFairValueOfAwardsGranted
Namespace Prefix: | bld_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition The remaining measurement period of share-based compensation awards, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. + References No definition available. + Details
Name: | bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRemainingMeasurementPeriod
Namespace Prefix: | bld_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Definition Weighted average grant-date fair value of options converted/exercised. + References No definition available. + Details
Name: | bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsConvertedExercisedWeightedAverageGrantDateFairValue
Namespace Prefix: | bld_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition Represents the Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Grant Date Fair Value. + References No definition available. + Details
Name: | bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageGrantDateFairValue
Namespace Prefix: | bld_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition The cumulative period of achievement related to restricted stock awards with performance conditions. + References No definition available. + Details
Name: | bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardOtherThanOptionsGrantsCumulativePeriodOfAchievement
Namespace Prefix: | bld_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Definition The cumulative three-year achievement percentage related to the restricted stock awards with performance conditions. + References No definition available. + Details
Name: | bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardOtherThanOptionsGrantsCumulativePeriodOfAchievementPercentage
Namespace Prefix: | bld_
Data Type: | dtr-types:percentItemType
Balance Type: | na
Period Type: | duration

X
- Definition Represents the total fair value of equity-based awards, other then options, granted during the reporting period. + References No definition available. + Details
Name: | bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardOtherThanOptionsGrantsInPeriodTotalGrantDateFairValue
Namespace Prefix: | bld_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition The total compensation expense recognized over the performance period, net of forfeitures, related to the restricted stock awards with performance conditions. + References No definition available. + Details
Name: | bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardOtherThanOptionsGrantsTotalCompensationExpenseRecognizedOverPerformancePeriod
Namespace Prefix: | bld_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition The payout range expressed as a percentage of the grant date fair value related to performance-based awards. + References No definition available. + Details
Name: | bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangePercentage
Namespace Prefix: | bld_
Data Type: | dtr-types:percentItemType
Balance Type: | na
Period Type: | instant

X
- Definition The compensation expense based on the payout range related to performance-based awards. + References No definition available. + Details
Name: | bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeRelatedExpenses
Namespace Prefix: | bld_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Amount of cost not yet recognized for nonvested award under share-based payment arrangement. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (i) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- References No definition available. + Details
Name: | us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (i) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
Namespace Prefix: | us-gaap_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount of cost to be recognized for nonvested award under share-based payment arrangement. Excludes share and unit options. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (i) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Amount of cost to be recognized for option under share-based payment arrangement. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (i) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- References No definition available. + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan). + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(2)(iii)(01) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
Namespace Prefix: | us-gaap_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | duration

X
- Definition The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan). + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(2)(iii)(01) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(2)(i) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(2)(ii) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
Namespace Prefix: | us-gaap_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | instant

X
- Definition A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period. + References No definition available. + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(2)(i) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(2)(ii) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | instant

X
- References No definition available. + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- References No definition available. + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (f)(2)(iii) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:percentItemType
Balance Type: | na
Period Type: | duration

X
- Definition The risk-free interest rate assumption that is used in valuing an option on its own shares. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (f)(2)(iv) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:percentItemType
Balance Type: | na
Period Type: | duration

X
- References No definition available. + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(iii) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
Namespace Prefix: | us-gaap_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | instant

X
- Definition The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(iii) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | instant

X
- Definition Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (d)(2) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Number of options outstanding, including both vested and non-vested options. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(i) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(ii) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
Namespace Prefix: | us-gaap_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | instant

X
- Definition A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period. + References No definition available. + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(i) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(ii) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | instant

X
- References No definition available. + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Weighted average price at which option holders acquired shares when converting their stock options into shares. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(iv)(02) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Weighted average grant-date fair value of non-vested options outstanding. + References No definition available. + Details
Name: | us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | instant

X
- References No definition available. + Details
Name: | us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Weighted average remaining contractual term for fully vested and expected to vest exercisable or convertible options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (e)(2) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1
Namespace Prefix: | us-gaap_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Definition Number of share options (or share units) exercised during the current period. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Section 50 -Paragraph 2 -SubTopic 10 -Topic 505 -Publisher FASB -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(iv)(02) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 210 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 1 -Subparagraph (SX 210.5-02(28)) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1 Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 505 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 1 -Subparagraph (SX 210.3-04) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480008/505-10-S99-1 Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 210 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 1 -Subparagraph (SX 210.5-02(29)) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1 + Details
Name: | us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised
Namespace Prefix: | us-gaap_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | duration

X
- Details
Name: | us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | bld_VestingCriteriaAxis=bld_VestingBasedOnPerformanceMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeAxis=bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeOneMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeAxis=bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeTwoMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeAxis=bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeThreeMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeAxis=bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeFourMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_AwardTypeAxis=bld_RestrictedStockAwardsGrantedFebruary2020Member
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |