v3.26.1
Revenue (Tables)
6 Months Ended
Jun. 30, 2026
Inventory Disclosure [Abstract]  
Summary of Disaggregate Total Net Sales by End Market and Geographic Location

The following tables disaggregate total net sales by end market and geographic location:

 

 

 

End market

 

 

 

Three Months Ended
June 30,

 

 

Six Months Ended
June 30,

 

 

 

2026

 

 

2025

 

 

2026

 

 

2025

 

Industrial

 

$

32,965

 

 

$

31,332

 

 

$

65,148

 

 

$

59,934

 

Fire

 

 

29,638

 

 

 

31,864

 

 

 

57,130

 

 

 

64,730

 

Agriculture

 

 

27,594

 

 

 

23,415

 

 

 

54,448

 

 

 

45,876

 

Construction

 

 

28,859

 

 

 

24,129

 

 

 

56,051

 

 

 

44,863

 

Municipal

 

 

28,782

 

 

 

29,836

 

 

 

53,735

 

 

 

51,845

 

Petroleum

 

 

5,084

 

 

 

5,549

 

 

 

10,221

 

 

 

11,019

 

OEM

 

 

13,206

 

 

 

12,299

 

 

 

25,924

 

 

 

23,343

 

Repair parts

 

 

19,937

 

 

 

20,621

 

 

 

40,001

 

 

 

41,384

 

Total net sales

 

$

186,065

 

 

$

179,045

 

 

$

362,658

 

 

$

342,994

 

 

 

 

Geographic Location

 

 

 

Three Months Ended
June 30,

 

 

Six Months Ended
June 30,

 

 

 

2026

 

 

2025

 

 

2026

 

 

2025

 

United States

 

$

140,353

 

 

$

136,104

 

 

$

274,684

 

 

$

257,542

 

Foreign countries

 

 

45,712

 

 

 

42,941

 

 

 

87,974

 

 

 

85,452

 

Total net sales

 

$

186,065

 

 

$

179,045

 

 

$

362,658

 

 

$

342,994

 

Summary of Contract Assets and Liabilities

The Company’s contract assets and liabilities as of June 30, 2026 and December 31, 2025 were as follows:

 

 

 

June 30,
2026

 

 

December 31,
2025

 

Contract assets

 

$

 

 

$

634

 

Contract liabilities

 

 

10,161

 

 

 

7,658