XML 58 R44.htm IDEA: XBRL DOCUMENT
v3.10.0.1

Summary of Significant Accounting Policies - Revenue Recognition (Details) - USD ($) $ in Thousands | 12 Months Ended |
--- | --- | ---
Dec. 31, 2018 | Dec. 31, 2017
Revenue Recognition |  |
Customer contract period | 90 days |
Contract Liabilities |  |
Deferred revenue | $ 19,963 | $ 9,275
Receivables, net |  |
Contract Assets |  |
Receivables, unbilled | 61,339 | 37,142
Accrued liabilities |  |
Contract Liabilities |  |
Deferred revenue | $ 19,963 | $ 9,275

X
- Definition The general duration of contracts with customers. + References No definition available. + Details
Name: | bld_ContractWithCustomerDuration
Namespace Prefix: | bld_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Definition Revenue Recognition Disclosure [Abstract]. + References No definition available. + Details
Name: | bld_RevenueRecognitionDisclosureAbstract
Namespace Prefix: | bld_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 45 -Paragraph 1 -URI http://asc.fasb.org/extlink&oid=82913815&loc=SL49130531-203044 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 45 -Paragraph 3 -URI http://asc.fasb.org/extlink&oid=82913815&loc=SL49130533-203044 + Details
Name: | us-gaap_ContractWithCustomerAssetNetCurrent
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

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

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

X
- Definition Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 45 -Paragraph 2 -URI http://asc.fasb.org/extlink&oid=82913815&loc=SL49130532-203044 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 45 -Paragraph 1 -URI http://asc.fasb.org/extlink&oid=82913815&loc=SL49130531-203044 Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 50 -Paragraph 8 -Subparagraph (a) -URI http://asc.fasb.org/extlink&oid=109196051&loc=SL49130549-203045 + Details
Name: | us-gaap_ContractWithCustomerLiabilityCurrent
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Details
Name: | us-gaap_BalanceSheetLocationAxis=bld_ReceivablesNetMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_BalanceSheetLocationAxis=us-gaap_AccruedLiabilitiesMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |