XML 55 R30.htm IDEA: XBRL DOCUMENT
v3.25.0.1

ORGANIZATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables) | 12 Months Ended
--- | ---
Dec. 31, 2024
ORGANIZATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES |
Schedule of long-lived assets by region | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | December 31,
(in thousands) |  | 2024 |  | 2023 | ​ | 2022
Geographic Regions: |  | ​ |  |  | ​ |  | ​ |  | ​
North America | ​ | $ | 129,181 | ​ | $ | 129,039 | ​ | $ | 120,009
Foreign | ​ |  | 7,341 | ​ |  | 6,881 | ​ |  | 4,665
Total Long-Lived Assets | ​ | $ | 136,522 | ​ | $ | 135,920 | ​ | $ | 124,674
Schedule of product warranty liability | ​
​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | December 31,
(in thousands) |  | 2024 |  | 2023
Accrual, Beginning of the year | ​ | $ | 2,813 | ​ | $ | 2,098
Provision | ​ |  | 4,668 | ​ |  | 4,048
Settlement and other, net of translation adjustment | ​ |  | (3,968) | ​ |  | (3,333)
Accrual, End of the year | ​ | $ | 3,513 | ​ | $ | 2,813
Schedule of disaggregation of revenue by the geographic region for customers | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | December 31,
(in thousands) | 2024 | ​ | 2023 | ​ | 2022
Geographic Regions: | ​ |  | ​ | ​ |  | ​ | ​ |
North America | $ | 1,131,834 | ​ | $ | 1,038,964 | ​ | $ | 765,307
Foreign | ​ | 125,666 | ​ | ​ | 114,390 | ​ | ​ | 83,149
TOTAL NET REVENUE | $ | 1,257,500 | ​ | $ | 1,153,354 | ​ | $ | 848,456
Schedule of segment reporting information by segment | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | Years Ended December 31,
(in thousands) | 2024 | ​ | 2023 | ​ | 2022
CONSOLIDATED STATEMENT OF INCOME | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Net Sales by Geographic Region: | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
North America | $ | 1,131,834 | ​ | $ | 1,038,964 | ​ | $ | 765,307
Foreign | ​ | 125,666 | ​ | ​ | 114,390 | ​ | ​ | 83,149
Net Sales | ​ | 1,257,500 | ​ | ​ | 1,153,354 | ​ | ​ | 848,456
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Cost of Operations |  | 1,086,695 | ​ |  | 1,001,500 | ​ |  | 766,037
Selling, general and administrative expenses | ​ | 86,322 | ​ |  | 73,087 | ​ |  | 52,827
Interest expense, net |  | 3,928 | ​ |  | 5,974 | ​ |  | 3,379
Other (income) expense, net |  | 425 | ​ |  | (991) | ​ |  | 481
Income before taxes | ​ | 80,130 | ​ |  | 73,784 | ​ | ​ | 25,732
Tax expense | ​ | 16,636 | ​ | ​ | 15,493 | ​ | ​ | 5,386
CONSOLIDATED NET INCOME | $ | 63,494 | ​ | $ | 58,291 | ​ | $ | 20,346
​
​ | ​ | ​ | ​ | ​ | ​
​ | Years Ended December 31,
(in thousands) | 2024 | ​ | 2023
TOTAL ASSETS | ​ | ​ | ​ | ​ | ​
Cash and temporary investments | $ | 24,337 | ​ | $ | 29,909
Accounts Receivable, net of allowance for credit losses |  | 313,413 | ​ |  | 286,138
Inventories, net |  | 186,169 | ​ |  | 189,807
Prepaid expenses | ​ | 5,847 | ​ | ​ | 4,617
​ | ​ | ​ | ​ | ​ | ​
Long-lived assets: | ​ | ​ | ​ | ​ | ​
North America | ​ | 129,181 | ​ | ​ | 129,039
Foreign | ​ | 7,341 | ​ | ​ | 6,881
Net Long-Lived Assets | ​ | 136,522 | ​ | ​ | 135,920
​ | ​ | ​ | ​ | ​ | ​
Other Assets |  | 727 | ​ |  | 819
CONSOLIDATED TOTAL ASSETS | $ | 667,015 | ​ | $ | 647,210
​

X
- References No definition available. + Details
Name: | us-gaap_AccountingPoliciesAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 5 -Publisher FASB -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5 + Details
Name: | us-gaap_DisaggregationOfRevenueTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of the changes in the guarantor's aggregate product warranty liability, including the beginning balance of the aggregate product warranty liability, the aggregate reductions in that liability for payments made (in cash or in kind) under the warranty, the aggregate changes in the liability for accruals related to product warranties issued during the reporting period, the aggregate changes in the liability for accruals related to preexisting warranties (including adjustments related to changes in estimates), and the ending balance of the aggregate product warranty liability. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 460 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 8 -Subparagraph (c) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8 + Details
Name: | us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of information concerning material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 220 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 2 -Subparagraph (SX 210.5-03(1)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 41 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41 + Details
Name: | us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 25 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-25 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 22 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22 Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 30 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30 + Details
Name: | us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration