Quarterly report [Sections 13 or 15(d)]

Revenue Recognition

v3.25.2
Revenue Recognition
6 Months Ended
Jun. 30, 2025
Revenue Recognition  
Revenue Recognition

3.  REVENUE RECOGNITION

Revenue is disaggregated between our Installation and Specialty Distribution segments and further based on market and product, as we believe this best depicts how the nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factors.  

The following tables present our revenues disaggregated by market (in thousands):

Three Months Ended June 30, 

2025

2024

Installation

Specialty
Distribution

Eliminations

Total

Installation

Specialty
Distribution

Eliminations

Total

Residential

$

650,925

$

226,993

$

(68,418)

$

809,500

$

712,827

$

237,604

$

(66,331)

$

884,100

Commercial/Industrial

129,753

372,191

(14,041)

487,903

138,156

355,222

(11,866)

481,512

Net sales

$

780,678

$

599,184

$

(82,459)

$

1,297,403

$

850,983

$

592,826

$

(78,197)

$

1,365,612

Six Months Ended June 30, 

2025

2024

Installation

Specialty
Distribution

Eliminations

Total

Installation

Specialty
Distribution

Eliminations

Total

Residential

$

1,271,886

$

437,007

$

(129,641)

$

1,579,252

$

1,387,263

$

454,001

$

(122,321)

$

1,718,943

Commercial/Industrial

254,325

721,980

(24,876)

951,429

262,463

684,619

(21,696)

925,386

Net sales

$

1,526,211

$

1,158,987

$

(154,517)

$

2,530,681

$

1,649,726

$

1,138,620

$

(144,017)

$

2,644,329

The following tables present our revenues disaggregated by product (in thousands):

Three Months Ended June 30, 

2025

2024

Installation

Specialty
Distribution

Eliminations

Total

Installation

Specialty
Distribution

Eliminations

Total

Insulation and accessories

$

624,743

$

525,019

$

(72,461)

$

1,077,301

$

685,728

$

525,242

$

(68,758)

$

1,142,212

Glass and windows

60,973

-

-

60,973

62,322

-

-

62,322

Gutters

28,855

56,402

(8,888)

76,369

30,371

49,052

(7,924)

71,499

All other

66,107

17,763

(1,110)

82,760

72,562

18,532

(1,515)

89,579

Net sales

$

780,678

$

599,184

$

(82,459)

$

1,297,403

$

850,983

$

592,826

$

(78,197)

$

1,365,612

Six Months Ended June 30, 

2025

2024

Installation

Specialty Distribution

Eliminations

Total

Installation

Specialty
Distribution

Eliminations

Total

Insulation and accessories

$

1,221,027

$

1,025,783

$

(136,486)

$

2,110,324

$

1,329,378

$

1,015,910

$

(126,267)

$

2,219,021

Glass and windows

120,489

-

-

120,489

120,438

-

-

120,438

Gutters

53,751

99,838

(15,962)

137,627

58,339

89,368

(15,232)

132,475

All other

130,944

33,366

(2,069)

162,241

141,571

33,342

(2,518)

172,395

Net sales

$

1,526,211

$

1,158,987

$

(154,517)

$

2,530,681

$

1,649,726

$

1,138,620

$

(144,017)

$

2,644,329

The following table represents our contract assets and contract liabilities with customers, in thousands:

Included in Line Item on

As of

Condensed Consolidated

June 30,

December 31,

Balance Sheets

2025

2024

Contract Assets:

Receivables, unbilled

Receivables, net

$

64,462

$

61,366

Contract Liabilities:

Deferred revenue

Accrued liabilities

$

13,430

$

18,651

The aggregate amount remaining on uncompleted performance obligations was $314.9 million as of June 30, 2025. We expect to satisfy the performance obligations and recognize revenue on substantially all of these uncompleted contracts over the next 18 months.

On certain of our long-term contracts, a percentage of the total project cost is withheld and not invoiced to the customer and collected until satisfactory completion of the customer’s project, typically within a year. This amount is referred to as retainage and is common practice in the construction industry. Retainage receivables are classified as a component of Receivables, net on our condensed consolidated balance sheets and were $69.7 million and $74.9 million as of June 30, 2025 and December 31, 2024, respectively.