XML 67 R54.htm IDEA: XBRL DOCUMENT
v3.8.0.1

Long-Term Debt - Key Terms of Credit Agreement (Details) - USD ($) $ in Thousands |  | 12 Months Ended |
--- | --- | --- | ---
May 05, 2017 | Dec. 31, 2017 | Dec. 31, 2016
Long-Term Debt |  |  |
Loss on extinguishment of debt |  | $ 1,086 |
Amount outstanding |  | 243,750 |
New Credit Agreement |  |  |
Long-Term Debt |  |  |
Additional term loan and/or revolver capacity available under incremental facility |  | 200,000 |
New Credit Agreement | Minimum |  |  |
Long-Term Debt |  |  |
Commitment fee (as a percent) | 0.15% |  |
New Credit Agreement | Maximum |  |  |
Long-Term Debt |  |  |
Commitment fee (as a percent) | 0.275% |  |
New Credit Agreement | Term Loan Facility |  |  |
Long-Term Debt |  |  |
Availability |  | 250,000 |
Additional term loan capacity under delayed draw feature |  | 100,000 |
Line of Credit Facility Maximum Borrowing Capacity Including Delayed Draw | $ 350,000 |  |
Amount outstanding | $ 250,000 |  |
New Credit Agreement | Revolving Facility |  |  |
Long-Term Debt |  |  |
Availability |  | 250,000 | $ 125,000
Sublimit for issuance of letters of credit under Revolving Facility* |  | 100,000 |
Sublimit for swingline loans under Revolving Facility* |  | $ 20,000 |
Interest rate |  | 2.85% |
New Credit Agreement | Base Rate Borrowings | Minimum |  |  |
Long-Term Debt |  |  |
Applicable margin based on total leverage ratio | 0.00% |  |
New Credit Agreement | Base Rate Borrowings | Maximum |  |  |
Long-Term Debt |  |  |
Applicable margin based on total leverage ratio | 1.50% |  |
New Credit Agreement | LIBOR Rate Borrowings | Minimum |  |  |
Long-Term Debt |  |  |
Applicable margin based on total leverage ratio | 1.00% |  |
New Credit Agreement | LIBOR Rate Borrowings | Maximum |  |  |
Long-Term Debt |  |  |
Applicable margin based on total leverage ratio | 2.50% |  |
Federal Funds Rate | New Credit Agreement | Base Rate Borrowings |  |  |
Long-Term Debt |  |  |
Basis spread | 0.50% |  |
LIBOR | New Credit Agreement | Base Rate Borrowings |  |  |
Long-Term Debt |  |  |
Basis spread | 1.00% |  |
Maturity of the reference rate | 1 month |  |

X
- Definition Represents the applicable margin based on the total leverage ratio per the terms of the credit agreement. + References No definition available. + Details
Name: | bld_DebitInstrumentApplicableMarginBasedOnTotalLeverageRatio
Namespace Prefix: | bld_
Data Type: | num:percentItemType
Balance Type: | na
Period Type: | duration

X
- Definition The maturity of the reference rate. + References No definition available. + Details
Name: | bld_DebtInstrumentReferenceRateMaturityPeriod
Namespace Prefix: | bld_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Definition The additional borrowing capacity available through delayed draw feature. + References No definition available. + Details
Name: | bld_LineOfCreditFacilityAdditionalBorrowingCapacityAvailableDelayedDraw
Namespace Prefix: | bld_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition Represents the additional borrowing capacity available, subject to certain conditions. + References No definition available. + Details
Name: | bld_LineOfCreditFacilityAdditionalBorrowingCapacityAvailableSubjectToCertainConditions
Namespace Prefix: | bld_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition The maximum borrowing capacity under the line of credit facility including the delayed draw. + References No definition available. + Details
Name: | bld_LineOfCreditFacilityMaximumBorrowingCapacityIncludingDelayedDraw
Namespace Prefix: | bld_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition Represents the sublimit available for the issuance of letters of credit under the credit facility. + References No definition available. + Details
Name: | bld_LineOfCreditFacilitySublimitAvailableForLettersOfCredit
Namespace Prefix: | bld_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition Represents the sublimit available for swingline loans under the credit facility. + References No definition available. + Details
Name: | bld_LineOfCreditFacilitySublimitAvailableForSwinglineLoans
Namespace Prefix: | bld_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition Percentage points added to the reference rate to compute the variable rate on the debt instrument. + References No definition available. + Details
Name: | us-gaap_DebtInstrumentBasisSpreadOnVariableRate1
Namespace Prefix: | us-gaap_
Data Type: | num:percentItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount, before unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but is not limited to, notes payable, bonds payable, commercial loans, mortgage loans, convertible debt, subordinated debt and other types of debt. + 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(22)) -URI http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 944 -SubTopic 210 -Section S99 -Paragraph 1 -Subparagraph (SX 210.7-03(16)) -URI http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910 Reference 3: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 942 -SubTopic 210 -Section S99 -Paragraph 1 -Subparagraph (SX 210.9-03(16)) -URI http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878 + Details
Name: | us-gaap_DebtInstrumentCarryingAmount
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition Effective interest rate for the funds borrowed under the debt agreement considering interest compounding and original issue discount or premium. + 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.22(a)(1)) -URI http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 835 -SubTopic 30 -Section 45 -Paragraph 2 -URI http://asc.fasb.org/extlink&oid=64930785&loc=d3e28551-108399 + Details
Name: | us-gaap_DebtInstrumentInterestRateEffectivePercentage
Namespace Prefix: | us-gaap_
Data Type: | num:percentItemType
Balance Type: | na
Period Type: | instant

X
- Definition Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table. + References No definition available. + Details
Name: | us-gaap_DebtInstrumentLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Difference between the fair value of payments made and the carrying amount of debt which is extinguished prior to maturity. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 470 -SubTopic 50 -Section 40 -Paragraph 2 -URI http://asc.fasb.org/extlink&oid=49170532&loc=d3e12317-112629 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 230 -SubTopic 10 -Section 45 -Paragraph 28 -Subparagraph (b) -URI http://asc.fasb.org/extlink&oid=66902209&loc=d3e3602-108585 Reference 3: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 470 -SubTopic 50 -Section 40 -Paragraph 4 -URI http://asc.fasb.org/extlink&oid=49170532&loc=d3e12355-112629 + Details
Name: | us-gaap_GainsLossesOnExtinguishmentOfDebt
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility. + 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.19(b),22(b)) -URI http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682 + Details
Name: | us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition The fee, expressed as a percentage of the line of credit facility, for available but unused credit capacity under the credit facility. + References No definition available. + Details
Name: | us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
Namespace Prefix: | us-gaap_
Data Type: | num:percentItemType
Balance Type: | na
Period Type: | duration

X
- Details
Name: | us-gaap_DebtInstrumentAxis=bld_SeniorSecuredCreditAgreementMay2017Member
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_LongtermDebtTypeAxis=us-gaap_SecuredDebtMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_ShortTermDebtTypeAxis=us-gaap_RevolvingCreditFacilityMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_CreditFacilityAxis=bld_BaseRateBorrowingsMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_CreditFacilityAxis=bld_LIBORRateBorrowingsMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_VariableRateAxis=bld_FederalFundsRateMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_VariableRateAxis=us-gaap_LondonInterbankOfferedRateLIBORMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |