XML 56 R41.htm IDEA: XBRL DOCUMENT
v3.25.0.1

Note 13 - Stock-based Compensation Plan (Tables) | 12 Months Ended
--- | ---
Dec. 31, 2024
Notes Tables |
Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block] |
|  | Years Ended December 31, |
(in thousands) |  | 2024 |  |  | 2023 |
Cost of revenues |  | $ | 144 |  |  | $ | 104 |
Selling expense |  |  | 50 |  |  |  | 41 |
Engineering and product development expense |  |  | 29 |  |  |  | 19 |
General and administrative expense |  |  | 1,634 |  |  |  | 1,883 |
Total stock-based compensation expense |  | $ | 1,857 |  |  | $ | 2,047 |
Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block] |
|  | Years Ended December 31, |
|  | 2024 |  |  | 2023 |
Risk-free interest rate |  |  | 3.98 | % |  |  | 3.93 | %
Dividend yield |  |  | - |  |  |  | - |
Expected common stock market price volatility factor |  |  | .57 |  |  |  | .57 |
Weighted average expected life of stock options (years) |  |  | 6.25 |  |  |  | 6.25 |
Share-Based Payment Arrangement, Option, Activity [Table Text Block] |
|  |  |  |  |  |  |  |  |  | Weighted |  |  |  |  |
|  |  |  |  |  | Weighted |  |  | Average |  |  | Aggregate |
|  |  |  |  |  | Average |  |  | Remaining |  |  | Intrinsic |
|  | Number |  |  | Exercise |  |  | Contractual |  |  | Value |
Stock Options |  | of Shares |  |  | Price |  |  | Term (yrs) |  |  | (in thousands) |
Outstanding, January 1, 2024 |  |  | 505,006 |  |  | $ | 10.46 |  |  |  |  |  |  |  |  |
Granted |  |  | 165,364 |  |  |  | 11.33 |  |  |  |  |  |  |  |  |
Exercised |  |  | (30,080 | ) |  |  | 5.41 |  |  |  |  |  |  |  |  |
Canceled |  |  | (37,697 | ) |  |  | 11.4 |  |  |  |  |  |  |  |  |
Outstanding, December 31, 2024 |  |  | 602,593 |  |  | $ | 10.92 |  |  |  | 7.3 |  |  | $ | 242 |
Exercisable |  |  | 260,853 |  |  | $ | 9.92 |  |  |  | 6.2 |  |  | $ | 217 |
Expected to vest |  |  | 341,740 |  |  | $ | 11.69 |  |  |  | 8.2 |  |  | $ | 25 |
Nonvested Restricted Stock Shares Activity [Table Text Block] |
|  | Number of Shares |  |  | Weighted Average Grant Date Fair Value |
Unvested shares outstanding, January 1, 2024 |  |  | 189,784 |  |  | $ | 11.51 |
Granted |  |  | 138,838 |  |  |  | 11.38 |
Vested |  |  | (103,666 | ) |  |  | 9.86 |
Forfeited |  |  | (16,174 | ) |  |  | 12.35 |
Unvested shares outstanding, December 31, 2024 |  |  | 208,782 |  |  | $ | 12.18 |

X
- Definition Tabular disclosure of the changes in outstanding nonvested restricted stock shares. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Section 50 -Subparagraph (c) -Paragraph 2 -SubTopic 10 -Topic 718 -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (h)(1) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (d) -SubTopic 10 -Topic 718 -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (e) -SubTopic 10 -Topic 718 -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 718 -SubTopic 10 -Subparagraph (f)(2) -Name Accounting Standards Codification -Paragraph 2 -Section 50 -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

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