XML 60 R47.htm IDEA: XBRL DOCUMENT
v3.8.0.1

Summary of Significant Accounting Policies - Revenue, PPE, Insurance and Other (Details) - USD ($) $ in Millions | 12 Months Ended
--- | ---
Dec. 31, 2017 | Dec. 31, 2016 | Dec. 31, 2015
Insurance receivables |  |  |
Insurance receivables | $ 2.0 | $ 3.2 |
Insurance Liabilities |  |  |
Insurance liability | 2.0 | 3.2 |
Advertising |  |  |
Advertising expense | $ 1.1 | 1.1 | $ 1.5
Buildings and land improvements | Minimum |  |  |
Property and Equipment |  |  |
Estimated Useful Life (in years) | 20 years |  |
Buildings and land improvements | Maximum |  |  |
Property and Equipment |  |  |
Estimated Useful Life (in years) | 40 years |  |
Software | Minimum |  |  |
Property and Equipment |  |  |
Estimated Useful Life (in years) | 3 years |  |
Software | Maximum |  |  |
Property and Equipment |  |  |
Estimated Useful Life (in years) | 6 years |  |
Company vehicles | Minimum |  |  |
Property and Equipment |  |  |
Estimated Useful Life (in years) | 3 years |  |
Company vehicles | Maximum |  |  |
Property and Equipment |  |  |
Estimated Useful Life (in years) | 8 years |  |
Equipment | Minimum |  |  |
Property and Equipment |  |  |
Estimated Useful Life (in years) | 6 years |  |
Equipment | Maximum |  |  |
Property and Equipment |  |  |
Estimated Useful Life (in years) | 10 years |  |
Installation | Unbilled Revenues |  |  |
Revenue Recognition |  |  |
Revenues | $ 37.1 | $ 28.9 |

X
- Definition Accrued Insurance Liability Noncurrent Exceeding Stop Loss Limit + References No definition available. + Details
Name: | bld_AccruedInsuranceLiabilityNoncurrentExceedingStopLossLimit
Namespace Prefix: | bld_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

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

X
- Definition Amount charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, product or product line. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 720 -SubTopic 35 -Section 50 -Paragraph 1 -URI http://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848 + Details
Name: | us-gaap_AdvertisingExpense
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition Carrying amount due after one year of the balance sheet date (or one operating cycle, if longer) of amount due in settlement of a claim for reimbursement from an insurance company when the Company has suffered a loss covered under an insurance policy. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 210 -SubTopic 10 -Section S99 -Paragraph 1 -Subparagraph (SX 210.5-02.17) -URI http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682 + Details
Name: | us-gaap_InsuranceSettlementsReceivableNoncurrent
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

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

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

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

X
- Definition Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment. + References No definition available. + Details
Name: | us-gaap_PropertyPlantAndEquipmentUsefulLife
Namespace Prefix: | us-gaap_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

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

X
- Definition Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss). + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 225 -SubTopic 10 -Section S99 -Paragraph 2 -Subparagraph (SX 210.5-03.1) -URI http://asc.fasb.org/extlink&oid=63488584&loc=d3e20235-122688 + Details
Name: | us-gaap_Revenues
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Details
Name: | us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandBuildingsAndImprovementsMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_RangeAxis=us-gaap_MinimumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_RangeAxis=us-gaap_MaximumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_SoftwareDevelopmentMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_VehiclesMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_StatementBusinessSegmentsAxis=bld_InstallationSegmentMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_AccountsNotesLoansAndFinancingReceivablesByBillingStatusTypeAxis=us-gaap_UnbilledRevenuesMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |