XML 34 R24.htm IDEA: XBRL DOCUMENT v3.20.2
Note 8 - Stock-based Compensation (Tables)
6 Months Ended
Jun. 30, 2020
Notes Tables  
Share-based Payment Arrangement, Option, Activity [Table Text Block]
           

Weighted-

 
           

Average

 
   

Stock Options

   

Exercise Price

 

Options outstanding at December 31, 2019

    276,266     $ 72.38  
Granted     60,065       105.79  
Exercised     (18,052 )     49.68  
Forfeited     (36,841 )     66.97  
Options outstanding at June 30, 2020     281,438     $ 81.67  
                 
Exercisable at June 30, 2020     144,822     $ 65.88  
Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]
   

Six Months Ended June 30,

   

2020

 

2019

Risk-free interest rate

 

0.50 - 1.47%

 

2.35 - 2.58%

Expected life (years)

  6.25   6.25

Expected volatility

 

42.40 - 43.83%

 

42.52 - 42.74%

Expected dividend yield

 

0%

 

0%

Share-based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]
           

Weighted-

 
           

Average

 
           

Grant Date

 
   

Restricted

   

Fair Value

 
   

Stock

   

Per Share

 

Restricted stock at December 31, 2019

    314,973     $ 89.55  
Granted     107,988       111.72  
Restrictions lapsed     (100,596 )     84.57  
Forfeited     (9,253 )     91.25  
Restricted stock at June 30, 2020     313,112     $ 98.75  
Schedule of Nonvested Performance-based Units Activity [Table Text Block]
           

Weighted-

 
           

Average

 
           

Grant Date

 
   

Performance

   

Fair Value

 
   

Stock

   

Per Share

 

Performance stock at December 31, 2019

    9,383     $ 58.35  

Granted

    19,956       118.66  

Restrictions lapsed

    (7,113 )     58.35  

Performance change

    -       -  

Forfeited

    (2,270 )     58.35  

Performance stock at June 30, 2020

    19,956     $ 118.66  
Schedule of Share-based Payment Award, Awards Other Than Stock Options, Valuation Assumptions [Table Text Block]
   

Six Months Ended June 30,

   

2020

 

Risk-free interest rate

  1.41%  

Expected life (years)

  2.88  

Expected volatility

  38.70%  

Expected dividend yield

  0%  
Schedule of Share-based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions [Table Text Block]
   

Six Months Ended June 30,

   

2020

 

2019

Risk-free interest rate

 

0.17 - 1.59%

 

2.33 - 2.35%

Expected life (months)

  6.00   6.00

Expected volatility

 

42.63 - 59.99%

 

37.36 - 53.57%

Expected dividend yield

 

0%

 

0%