XML 56 R39.htm IDEA: XBRL DOCUMENT
v3.24.1

Note 13 - Stock-based Compensation Plan (Tables) | 12 Months Ended
--- | ---
Dec. 31, 2023
Notes Tables |
Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block] |
|  | Years Ended December 31, |
|  | 2023 |  |  | 2022 |
Cost of revenues |  | $ | 104 |  |  | $ | 62 |
Selling expense |  |  | 41 |  |  |  | 32 |
Engineering and product development expense |  |  | 19 |  |  |  | 51 |
General and administrative expense |  |  | 1,883 |  |  |  | 1,642 |
|  | $ | 2,047 |  |  | $ | 1,787 |
Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block] |
|  | 2023 |  |  | 2022 |
Risk-free interest rate |  |  | 3.93 | % |  |  | 2.05 | %
Dividend yield |  |  | 0.00 | % |  |  | 0.00 | %
Expected common stock market price volatility factor |  |  | .57 |  |  |  | .55 |
Weighted average expected life of stock options (years) |  |  | 6.25 |  |  |  | 6.25 |
Share-Based Payment Arrangement, Option, Activity [Table Text Block] |
|  | Number of Shares |  |  | Weighted Average Exercise Price |
Options outstanding, January 1, 2022 |  |  | 408,869 |  |  | $ | 9.07 |
Granted |  |  | 202,540 |  |  |  | 8.45 |
Exercised |  |  | (8,060 | ) |  |  | 4.74 |
Canceled |  |  | (22,930 | ) |  |  | 9.10 |
Options outstanding, December 31, 2022 (167,886 exercisable) |  |  | 580,419 |  |  |  | 8.91 |
Granted |  |  | 93,860 |  |  |  | 16.25 |
Exercised |  |  | (124,550 | ) |  |  | 7.85 |
Canceled |  |  | (44,723 | ) |  |  | 9.77 |
Options outstanding, December 31, 2023 (171,735 exercisable) |  |  | 505,006 |  |  |  | 10.46 |
Nonvested Restricted Stock Shares Activity [Table Text Block] |
|  | Number of Shares |  |  | Weighted Average Grant Date Fair Value |
Unvested shares outstanding, January 1, 2022 |  |  | 262,533 |  |  | $ | 7.16 |
Granted |  |  | 123,533 |  |  |  | 9.21 |
Vested |  |  | (91,672 | ) |  |  | 8.04 |
Forfeited |  |  | (5,944 | ) |  |  | 9.16 |
Unvested shares outstanding, December 31, 2022 |  |  | 288,450 |  |  |  | 7.80 |
Granted |  |  | 97,461 |  |  |  | 16.43 |
Vested |  |  | (178,636 | ) |  |  | 8.21 |
Forfeited |  |  | (17,491 | ) |  |  | 10.08 |
Unvested shares outstanding, December 31, 2023 |  |  | 189,784 |  |  |  | 11.51 |

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 -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -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