XML 46 R32.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 10 - Stockholders' Equity (Tables)
12 Months Ended
Dec. 31, 2021
Notes Tables  
Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]
  

2021

  

2020

  

2019

 

Dividend yield

  0.91%  1.02%  0.96%

Volatility

  46.0%  47.3%  42.8%

Risk-free interest rate

  1.1%  0.3%  1.7%

Weighted average expected option term (in years)

  4.6   4.9   4.7 

Weighted average fair value per share of options granted

 $17.64  $13.24  $12.51 
Share-based Payment Arrangement, Option, Activity [Table Text Block]
      

Weighted

  

Weighted Average

  

Aggregate

 
  

Number

  

Average

  

Remaining

  

Intrinsic

 
  

of Shares

  

Exercise Price

  

Contractual Term

  

Value

 
          

(in years)

  

(in thousands)

 
                 

Balance outstanding at December 31, 2018

  1,462,575  $16.41   4.54  $12,214 
                 

Granted

  195,379  $35.53         

Exercised

  (509,693) $9.53      $11,488 

Canceled / Expired

  (101,167) $17.90         
                 

Balance outstanding at December 31, 2019

  1,047,094  $28.22   4.31  $13,367 
                 

Granted

  222,110  $36.67         

Exercised

  (331,958) $17.99      $5,413 

Canceled / Expired

  (5,406) $27.49         
                 

Balance outstanding at December 31, 2020

  931,840  $28.22   4.49  $11,442 
                 

Granted

  151,161  $48.60         

Exercised

  (217,121) $20.95      $6,975 

Canceled / Expired

  (19,126) $23.18         

Balance outstanding at December 31, 2021

  846,754  $33.83   4.50  $13,888 
                 

Exercisable at:

                

December 31, 2019

  309,501  $19.64   3.50  $5,047 

December 31, 2020

  274,411  $23.08   3.50  $4,781 

December 31, 2021

  301,692  $27.40   3.30  $6,886 
                 

Expected to vest at:

                

December 31, 2019

  737,593  $24.68   4.65     

December 31, 2020

  657,429  $30.37   4.93     

December 31, 2021

  545,062  $37.38   5.16     
Share-based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]
      

Weighted

 
      

Average

 
  

Number

  

Grant Date

 
  

of Shares

  

Fair Value

 
         

Balance outstanding at December 31, 2018

  217,895  $21.21 
         

Granted

  56,567  $35.41 

Vested

  (61,058) $18.46 

Canceled

  (24,723) $22.19 
         

Balance outstanding at December 31, 2019

  188,681  $26.14 
         

Granted

  46,146  $36.86 

Vested

  (50,669) $22.76 

Canceled

  (37,143) $27.88 
         

Balance outstanding at December 31, 2020

  147,015  $30.24 
         

Granted

  48,298  $48.65 

Vested

  (51,414) $26.32 

Canceled

  (10,068) $30.70 
         

Balance outstanding at December 31, 2021

  133,831  $38.26 
Share-based Payment Arrangement, Performance Shares, Activity [Table Text Block]
      

Weighted

 
      

Average

 
  

Number

  

Grant Date

 
  

of Shares

  

Fair Value

 
         

Balance outstanding at December 31, 2020

  -  $- 
         

Granted

  31,181  $48.60 

Vested

  -  $- 

Canceled

  -  $- 
         

Balance outstanding at December 31, 2021

  31,181  $48.60 
Accelerated Share Repurchases [Table Text Block]
  

2021

  

2020

  

2019

 
             

Shares of common stock repurchased for net settlement of equity awards

  16,333   16,537   20,524 

Average per share repurchase price

 $49.10  $34.47  $33.28 

Aggregage purchase price (in thousands)

 $802  $570  $683 
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]
  

2021

  

2020

  

2019

 
  (in thousands) 

Stock option awards

 $2,199  $1,938  $1,580 

Restricted stock units

  1,247   1,084   1,062 

Performance-based restricted stock units

  33   -   - 
             

Total stock-based compensation

 $3,479  $3,022  $2,642 
  

2021

  

2020

  

2019

 
  

(in thousands)

 

Cost of sales

 $407  $333  $310 

Sales and marketing

  527   516   544 

General and administrative

  2,185   1,883   1,509 

Research and development

  360   290   279 
             

Total stock-based compensation

 $3,479  $3,022  $2,642 
Schedule of Dividends Payable [Table Text Block]

Record Date

 

Payment Date

 

Per Share Amount

  

Dividend Payment

 
        

(in thousands)

 

Fiscal Year 2021

          

March 9, 2021

 

March 25, 2021

 $0.110  $2,262 

May 19, 2021

 

June 3, 2021

 $0.110  $2,267 

August 26, 2021

 

September 9, 2021

 $0.110  $2,401 

November 19, 2021

 

December 2, 2021

 $0.110  $2,405 
           

Fiscal Year 2020

          

March 3, 2020

 

March 19, 2020

 $0.095  $1,917 

May 20, 2020

 

June 4, 2020

 $0.095  $1,917 

August 27, 2020

 

September 10, 2020

 $0.095  $1,925 

November 19, 2020

 

December 3, 2020

 $0.095  $1,936