v3.26.1
Revenue Recognition (Tables)
6 Months Ended
Jun. 30, 2026
Revenue Recognition  
Schedule of changes in contract assets and liabilities

Contract

Contract

  ​ ​ ​

Assets

  ​ ​ ​

Liabilities

As of December 31, 2025

$

4,746

$

3,315

Net activity

(609)

(699)

As of June 30, 2026

$

4,137

$

2,616

Schedule of disaggregation of revenue by product category and end market

Three Months Ended

Six Months Ended

June 30, 

June 30, 

Product Category

  ​ ​ ​

2026

  ​ ​ ​

2025

  ​ ​ ​

2026

  ​ ​ ​

2025

Outdoor sports

$

1,739

$

2,107

$

3,329

$

3,892

Fabrication

95,344

63,956

176,858

131,814

Performance structures

41,839

39,860

86,380

83,194

Tube

19,688

20,560

35,792

37,070

Tank

8,123

9,296

14,836

19,185

Total

166,733

135,779

317,195

275,155

Intercompany sales elimination

(3,752)

(3,451)

(9,434)

(7,248)

Total, net sales

$

162,981

$

132,328

$

307,761

$

267,907

Three Months Ended

Six Months Ended

June 30, 

June 30, 

End Market

2026

2025

2026

2025

Commercial vehicle

$

50,826

$

49,134

$

89,508

$

100,010

Datacenter & critical power

29,050

5,039

52,644

9,182

Construction & access

 

23,135

20,173

43,264

39,698

Powersports

 

18,452

19,625

41,843

41,875

Agriculture

 

8,960

9,233

19,341

20,168

Military

6,456

8,342

12,223

16,829

Other

26,102

20,782

48,938

40,145

Total, net sales

$

162,981

$

132,328

$

307,761

$

267,907