XML 42 R24.htm IDEA: XBRL DOCUMENT
v3.24.0.1

BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables) | 12 Months Ended
--- | ---
Dec. 31, 2023
BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES |
Schedule of activity in the allowance for doubtful accounts | Activity in the provision for credit losses for 2023 and 2022 was as follows (in thousands): ​
​ | ​ | ​ | ​ | ​ | ​ | ​
​ |  | December 31, 2023 |  | December 31, 2022
Beginning balance | ​ | $ | 1,192 | ​ | $ | 506
Additional reserves | ​ |  | 267 | ​ |  | 803
Write-offs | ​ |  | (225) | ​ |  | (107)
Effect of foreign currency translation | ​ | ​ | 6 | ​ | ​ | (10)
Ending balance | ​ | $ | 1,240 | ​ | $ | 1,192
Schedule of inventories including costs of materials, direct labor and manufacturing overhead, and are stated at the lower of cost (first-in, first-out basis) or net realizable value | Inventories include costs of materials, direct labor and manufacturing overhead, and are stated at the lower of cost (first-in, first-out basis) or net realizable value, as follows (in thousands):
​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | December 31, 2023 |  | December 31, 2022
Parts and raw materials | ​ | $ | 87,381 | ​ | $ | 89,100
Work-in-process | ​ |  | 11,456 | ​ |  | 11,686
Finished goods | ​ |  | 18,849 | ​ |  | 16,322
​ | ​ | $ | 117,686 | ​ | $ | 117,108
Schedule of classification of property, plant and equipment | Property, plant and equipment is classified as follows (in thousands): ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ |  | ​ |  | December 31, |  | December 31,
​ | ​ | Useful lives | ​ | 2023 | ​ | 2022
Land | ​ | ​ | ​ | $ | 973 | ​ | $ | 965
Building and improvements |  | 5 - 39 years | ​ |  | 26,201 | ​ |  | 25,093
Machinery, equipment, tools and dies |  | 3 - 15 years | ​ |  | 99,711 | ​ |  | 89,144
Construction in progress | ​ | ​ | ​ | ​ | 9,300 | ​ | ​ | 14,197
Furniture, fixtures and other |  | 3 - 10 years | ​ |  | 24,439 | ​ |  | 22,461
​ | ​ | ​ | ​ |  | 160,624 | ​ |  | 151,860
Less accumulated depreciation | ​ | ​ | ​ |  | (93,161) | ​ |  | (83,220)
Property, plant, and equipment, net | ​ | ​ | ​ | $ | 67,463 | ​ | $ | 68,640
Schedule of changes in the reserve for product warranty claims | Changes in the Company’s reserve for product warranty claims during 2023, 2022 and 2021 were as follows (in thousands):
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | December 31, | ​ | December 31, | ​ | December 31,
​ |  | 2023 |  | 2022 |  | 2021
Beginning balance | ​ | $ | 2,160 | ​ | $ | 1,869 | ​ | $ | 1,571
Warranty reserves acquired | ​ |  | — | ​ |  | 45 | ​ |  | 15
Provision | ​ |  | (296) | ​ |  | (66) | ​ |  | 543
Warranty expenditures | ​ |  | 243 | ​ |  | 409 | ​ |  | (204)
Effect of foreign currency translation | ​ |  | 32 | ​ |  | (97) | ​ |  | (56)
Ending balance | ​ | $ | 2,139 | ​ | $ | 2,160 | ​ | $ | 1,869
Schedule of accrued liabilities | Accrued liabilities consist of the following (in thousands): ​
​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | December 31, | ​ | December 31,
​ |  | 2023 |  | 2022
Compensation and fringe benefits | ​ | $ | 17,251 | ​ | $ | 15,818
Accrued business acquisition consideration | ​ |  | 12,638 | ​ |  | 12,500
Warranty reserve | ​ |  | 2,139 | ​ |  | 2,160
Income taxes payable | ​ | ​ | 2,483 | ​ | ​ | 3,934
Operating lease liabilities – current | ​ | ​ | 5,142 | ​ | ​ | 4,224
Finance lease obligations – current | ​ | ​ | 412 | ​ | ​ | 377
Contract liabilities | ​ | ​ | 2,137 | ​ | ​ | 4,807
Contingent consideration – current | ​ | ​ | 7,720 | ​ | ​ | —
Other accrued expenses | ​ |  | 6,566 | ​ |  | 4,301
​ | ​ | $ | 56,488 | ​ | $ | 48,121
Schedule of basic and diluted weighted-average shares outstanding | Basic and diluted weighted-average shares outstanding are as follows (in thousands):
​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Year ended December 31,
​ |  | 2023 |  | 2022 |  | 2021
Basic weighted average shares outstanding |  | 15,963 |  | 15,448 |  | 14,413
Dilutive effect of potential common shares |  | 309 |  | 503 |  | 104
Diluted weighted average shares outstanding |  | 16,272 |  | 15,951 |  | 14,517
​ | ​ | ​ | ​ | ​ | ​ | ​
Schedule of financial assets that are accounted for at fair value on a recurring basis | The following table presents the Company’s financial assets that are accounted for at fair value on a recurring basis as of December 31, 2023 and 2022, respectively, by level within the fair value hierarchy (in thousands): ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | December 31, 2023
​ |  | Level 1 |  | Level 2 |  | Level 3
Assets (liabilities) | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Pension plan assets | ​ | $ | 5,859 | ​ | $ | — | ​ | $ | —
Deferred compensation plan assets | ​ |  | 4,305 | ​ |  | — | ​ |  | —
Foreign currency hedge contracts | ​ | ​ | — | ​ | ​ | 54 | ​ | ​ | —
Interest rate swaps, net | ​ |  | — | ​ |  | 4,431 | ​ |  | —
Contingent consideration | ​ |  | — | ​ |  | — | ​ |  | (7,990)
​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | December 31, 2022
​ |  | Level 1 |  | Level 2 |  | Level 3
Assets (liabilities) | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Pension plan assets | ​ | $ | 5,324 | ​ | $ | — | ​ | $ | —
Deferred compensation plan assets | ​ |  | 3,870 | ​ |  | — | ​ |  | —
Foreign currency hedge contracts | ​ |  | — | ​ |  | 48 | ​ |  | —
Interest rate swaps, net | ​ |  | — | ​ |  | 7,236 | ​ |  | —
Contingent consideration | ​ |  | — | ​ |  | — | ​ |  | (4,100)

X
- Definition Tabular disclosure of assets, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, by class that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3). + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 820 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org//1943274/2147482106/820-10-50-2 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 820 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (b) -Publisher FASB -URI https://asc.fasb.org//1943274/2147482106/820-10-50-2 + Details
Name: | us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

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

X
- Definition Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Section 50 -Paragraph 1 -SubTopic 10 -Topic 360 -Publisher FASB -URI https://asc.fasb.org//1943274/2147482099/360-10-50-1 + Details
Name: | us-gaap_PropertyPlantAndEquipmentTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of the various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 210 -SubTopic 10 -Section S99 -Paragraph 1 -Subparagraph (SX 210.5-02.3,4) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1 + Details
Name: | us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of the components of accrued liabilities. + References No definition available. + Details
Name: | us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 210 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 1 -Subparagraph (SX 210.5-02(6)(a)) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 210 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 1 -Subparagraph (SX 210.5-02(6)(b)) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1 Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 210 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 1 -Subparagraph (SX 210.5-02(6)(c)) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1 Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 210 -SubTopic 10 -Section 50 -Paragraph 1 -Publisher FASB -URI https://asc.fasb.org//1943274/2147483489/210-10-50-1 + Details
Name: | us-gaap_ScheduleOfInventoryCurrentTableTextBlock
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 the weighted average number of shares used in calculating basic net earnings per share (or unit) and diluted earnings per share (or unit). + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 260 -SubTopic 10 -Section 50 -Paragraph 1 -Publisher FASB -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1 + Details
Name: | us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration