v3.22.2
Revenue Recognition - Disaggregation (Details) - USD ($)
$ in Thousands |
3 Months Ended |
6 Months Ended |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
$ 1,274,285
|
$ 834,255
|
$ 2,443,203
|
$ 1,577,053
|
Insulation and accessories |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
1,023,081
|
661,140
|
1,967,624
|
1,255,704
|
Glass and windows |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
57,121
|
47,167
|
108,317
|
90,214
|
Gutters |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
70,025
|
53,003
|
132,611
|
92,894
|
All other |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
124,058
|
72,945
|
234,651
|
138,241
|
Residential |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
831,898
|
652,610
|
1,588,191
|
1,229,394
|
Commercial |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
336,251
|
181,645
|
656,939
|
347,659
|
Industrial |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
106,136
|
|
198,073
|
|
Operating Segment | Installation |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
748,968
|
605,625
|
1,425,661
|
1,138,378
|
Operating Segment | Installation | Insulation and accessories |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
590,099
|
478,076
|
1,126,440
|
895,673
|
Operating Segment | Installation | Glass and windows |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
57,121
|
47,167
|
108,317
|
90,214
|
Operating Segment | Installation | Gutters |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
27,240
|
22,416
|
50,198
|
41,774
|
Operating Segment | Installation | All other |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
74,508
|
57,966
|
140,706
|
110,717
|
Operating Segment | Installation | Residential |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
634,078
|
486,266
|
1,197,382
|
904,343
|
Operating Segment | Installation | Commercial |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
114,890
|
119,359
|
228,279
|
234,035
|
Operating Segment | Specialty Distribution |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
587,791
|
273,364
|
1,131,653
|
524,965
|
Operating Segment | Specialty Distribution | Insulation and accessories |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
486,325
|
220,257
|
938,337
|
431,751
|
Operating Segment | Specialty Distribution | Gutters |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
50,879
|
36,851
|
97,509
|
62,689
|
Operating Segment | Specialty Distribution | All other |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
50,587
|
16,256
|
95,807
|
30,525
|
Operating Segment | Specialty Distribution | Residential |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
247,827
|
203,063
|
484,238
|
395,108
|
Operating Segment | Specialty Distribution | Commercial |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
233,828
|
70,301
|
449,342
|
129,857
|
Operating Segment | Specialty Distribution | Industrial |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
106,136
|
|
198,073
|
|
Intercompany Eliminations and Other Adjustments |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
(62,474)
|
(44,734)
|
(114,111)
|
(86,290)
|
Intercompany Eliminations and Other Adjustments | Insulation and accessories |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
(53,343)
|
(37,193)
|
(97,153)
|
(71,720)
|
Intercompany Eliminations and Other Adjustments | Gutters |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
(8,094)
|
(6,264)
|
(15,096)
|
(11,569)
|
Intercompany Eliminations and Other Adjustments | All other |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
(1,037)
|
(1,277)
|
(1,862)
|
(3,001)
|
Intercompany Eliminations and Other Adjustments | Residential |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
(50,007)
|
(36,719)
|
(93,429)
|
(70,057)
|
Intercompany Eliminations and Other Adjustments | Commercial |
|
|
|
|
Revenue Recognition |
|
|
|
|
Net sales |
$ (12,467)
|
$ (8,015)
|
$ (20,682)
|
$ (16,233)
|
X |
- DefinitionLine 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
+ Details
Name: |
us-gaap_DisaggregationOfRevenueLineItems |
Namespace Prefix: |
us-gaap_ |
Data Type: |
xbrli:stringItemType |
Balance Type: |
na |
Period Type: |
duration |
|
X |
- DefinitionAmount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.
+ References
+ Details
Name: |
us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax |
Namespace Prefix: |
us-gaap_ |
Data Type: |
xbrli:monetaryItemType |
Balance Type: |
credit |
Period Type: |
duration |
|
X |
- Details
Name: |
srt_ProductOrServiceAxis=bld_InsulationAndAccessoriesMember |
Namespace Prefix: |
|
Data Type: |
na |
Balance Type: |
|
Period Type: |
|
|
X |
- Details
Name: |
srt_ProductOrServiceAxis=bld_GlassAndWindowsMember |
Namespace Prefix: |
|
Data Type: |
na |
Balance Type: |
|
Period Type: |
|
|
X |
- Details
Name: |
srt_ProductOrServiceAxis=bld_RainGuttersMember |
Namespace Prefix: |
|
Data Type: |
na |
Balance Type: |
|
Period Type: |
|
|
X |
- Details
Name: |
srt_ProductOrServiceAxis=bld_AllOtherProductsMember |
Namespace Prefix: |
|
Data Type: |
na |
Balance Type: |
|
Period Type: |
|
|
X |
- Details
Name: |
srt_MajorCustomersAxis=bld_ResidentialMember |
Namespace Prefix: |
|
Data Type: |
na |
Balance Type: |
|
Period Type: |
|
|
X |
- Details
Name: |
srt_MajorCustomersAxis=bld_CommercialMember |
Namespace Prefix: |
|
Data Type: |
na |
Balance Type: |
|
Period Type: |
|
|
X |
- Details
Name: |
srt_MajorCustomersAxis=bld_IndustrialMember |
Namespace Prefix: |
|
Data Type: |
na |
Balance Type: |
|
Period Type: |
|
|
X |
- Details
Name: |
srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember |
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_StatementBusinessSegmentsAxis=bld_DistributionSegmentMember |
Namespace Prefix: |
|
Data Type: |
na |
Balance Type: |
|
Period Type: |
|
|
X |
- Details
Name: |
srt_ConsolidationItemsAxis=bld_EliminationsAndReconcilingItemsMember |
Namespace Prefix: |
|
Data Type: |
na |
Balance Type: |
|
Period Type: |
|
|
|