XML 22 R11.htm IDEA: XBRL DOCUMENT v3.26.1
REVENUE RECOGNITION
6 Months Ended
Jun. 30, 2026
REVENUE RECOGNITION  
REVENUE RECOGNITION

3.    REVENUE RECOGNITION

The following tables disaggregate net sales by channel and geography:

Three Months Ended June 30, 

Six Months Ended June 30, 

  ​ ​ ​

2026

  ​ ​ ​

2025

  ​ ​ ​

2026

  ​ ​ ​

2025

U.S. state and local agencies (a)

$

69,600

$

77,600

$

135,760

$

151,009

Commercial

 

16,080

 

11,887

 

28,263

 

22,906

U.S. federal agencies

 

40,405

 

29,022

 

71,932

 

50,506

International

 

77,198

 

36,859

 

121,602

 

59,740

Other

 

3,843

 

1,741

 

4,998

 

3,054

Net sales

$

207,126

$

157,109

$

362,555

$

287,215

(a) Includes all Distribution sales

Three Months Ended June 30, 

Six Months Ended June 30, 

  ​ ​ ​

2026

  ​ ​ ​

2025

  ​ ​ ​

2026

  ​ ​ ​

2025

United States

$

129,928

$

120,250

$

240,953

$

227,475

International

 

77,198

 

36,859

 

121,602

 

59,740

Net sales

$

207,126

$

157,109

$

362,555

$

287,215

Revenue by product is not disclosed, as it is impractical to do so.

Contract Assets and Liabilities

Contract assets represent unbilled amounts resulting from certain long-term contracts that contain performance obligations that are satisfied over time. In these contracts, the revenue recognized exceeds the amount billed to the customer. Contract assets totaled $20,456 and $17,875 as of June 30, 2026 and December 31, 2025, respectively. The Company has determined that it has an unconditional right to consideration for these amounts and therefore includes contract assets in accounts receivable, net in the Company’s condensed consolidated balance sheets.

Contract liabilities are recorded when customers are billed or remit cash payments in advance of the Company satisfying performance obligations. Contract liabilities are recognized into revenue when the performance obligation is satisfied. Contract liabilities are included in accrued liabilities in the Company’s condensed consolidated balance sheets, as they are expected to be recognized in revenue within one year, and totaled $14,910 and $12,023 as of June 30, 2026 and December 31, 2025, respectively. Revenue recognized during the three and six months ended June 30, 2026 from amounts included in contract liabilities as of December 31, 2025 was $953 and $7,732, respectively.

Remaining Performance Obligations

As of June 30, 2026, we had $184,890 of remaining unfulfilled performance obligations, which include amounts that will be invoiced and recognized in future periods. The remaining performance obligations are limited only to arrangements that meet the definition of a contract under ASC Topic 606, Revenue from Contracts with Customers, as of June 30, 2026. We expect to recognize approximately 49% of this balance over the next twelve months and expect the remainder to be recognized in the following two years.