4.REVENUE RECOGNITION

The following tables disaggregate net sales by channel and geography:

Year Ended December 31, 

    

2024

    

2023

    

2022

U.S. state and local agencies (a)

$

298,276

$

282,318

$

250,680

Commercial

 

44,498

 

42,406

 

45,357

U.S. federal agencies

 

100,336

 

57,447

 

51,165

International

 

112,342

 

97,058

 

106,593

Other

 

12,109

 

3,303

 

4,042

Net sales

$

567,561

$

482,532

$

457,837

(a) Includes all Distribution sales

Year Ended December 31, 

    

2024

    

2023

United States

$

455,219

$

385,474

International

 

112,342

 

97,058

Net sales

$

567,561

$

482,532

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. 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 consolidated balance sheets and totaled $9,550 as of December 31, 2024. There were no contract assets as of December 31, 2023.

Contract liabilities are recorded as a component of other liabilities 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 consolidated balance sheets and totaled $7,470 and $4,615, as of December 31, 2024 and 2023, with $3,092 of the 2023 contract liabilities being recognized in revenue during the year ended December 31, 2024.

Remaining Performance Obligations

As of December 31, 2024, we had $45,330 of remaining unfulfilled performance obligations, which included 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 Topic 606, Revenue from Contracts with Customers, as of December 31, 2024. We expect to recognize approximately 61% of this balance over the next twelve months and expect the remainder to be recognized in the following two years.

About Revenue Disclosures

Revenue disclosures under ASC 606 explain how a company identifies performance obligations, allocates transaction prices, and determines when revenue is recognized. This section is essential for understanding whether reported revenue reflects genuine economic activity or aggressive accounting choices. Analysts examine the mix of point-in-time versus over-time recognition, which directly affects revenue timing and comparability.

Key signals: rising contract liabilities (deferred revenue) suggest strong future revenue visibility, while declining contract assets may indicate slowing project milestones. Watch for variable consideration estimates — rebates, returns, and performance bonuses that require management judgment. Significant changes in disaggregated revenue by geography or product line can reveal shifting business mix before it appears in headline numbers. Compare revenue growth against contract liability growth to assess sustainability, and scrutinize any changes in the timing of recognition that coincide with earnings pressure.