XML 24 R7.htm IDEA: XBRL DOCUMENT v3.24.0.1
Consolidated Statements of Stockholders' Equity - USD ($)
$ in Thousands
Total
Common Stock
Treasury Stock
Additional Paid-in Capital
Retained Earnings
Accumulated Other Comprehensive Gain (Loss)
Beginning balance (in shares) at Dec. 31, 2020   35,487,217        
Beginning balance at Dec. 31, 2020 $ 420,721 $ 37 $ (65,247) $ 393,462 $ 93,490 $ (1,021)
Beginning balance (in shares) at Dec. 31, 2020     1,613,250      
Increase (Decrease) in Stockholders' Equity [Roll Forward]            
Stock-based compensation 25,686     25,686    
Shares issued pursuant to stock awards (in shares)   642,417        
Shares issued pursuant to stock awards 9,374 $ 1   9,373    
Employee stock purchase plan (in shares)   55,726        
Employee stock purchase plan activity $ 4,737     4,737    
Repurchases of common stock (in shares) (176,103) (176,103) (176,103)      
Repurchases of common stock $ (20,430)   $ (20,430)      
Net income 44,597       44,597  
Foreign currency translation adjustments (514)         (514)
Unrealized gain (loss) on investments, net of tax (102)         (102)
Reclassification of gain (loss) on investments into earnings, net of tax 190         190
Ending balance (in shares) at Dec. 31, 2021   36,009,257        
Ending balance at Dec. 31, 2021 484,259 $ 38 $ (85,677) 433,258 138,087 (1,447)
Ending balance (in shares) at Dec. 31, 2021     1,789,353      
Increase (Decrease) in Stockholders' Equity [Roll Forward]            
Stock-based compensation 31,275     31,275    
Shares issued pursuant to stock awards (in shares)   440,427        
Shares issued pursuant to stock awards 4,908     4,908    
Employee stock purchase plan (in shares)   70,107        
Employee stock purchase plan activity $ 6,676     6,676    
Repurchases of common stock (in shares) (361,745) (361,745) (361,745)      
Repurchases of common stock $ (43,215)   $ (43,215)      
Net income 55,134       55,134  
Foreign currency translation adjustments (2,240)         (2,240)
Unrealized gain (loss) on investments, net of tax 441         441
Reclassification of gain (loss) on investments into earnings, net of tax $ (165)         (165)
Ending balance (in shares) at Dec. 31, 2022 36,158,046 36,158,046        
Ending balance at Dec. 31, 2022 $ 537,073 $ 38 $ (128,892) 476,117 193,221 (3,411)
Ending balance (in shares) at Dec. 31, 2022 2,151,098   2,151,098      
Increase (Decrease) in Stockholders' Equity [Roll Forward]            
Stock-based compensation $ 42,975     42,975    
Shares issued pursuant to stock awards (in shares)   598,361        
Shares issued pursuant to stock awards 9,856 $ 1   9,855    
Employee stock purchase plan (in shares)   63,641        
Employee stock purchase plan activity $ 8,114     8,114    
Repurchases of common stock (in shares) 0          
Repurchases of common stock $ 0          
Net income 65,824       65,824  
Foreign currency translation adjustments 3,393         3,393
Unrealized gain (loss) on investments, net of tax 1,932         1,932
Reclassification of gain (loss) on investments into earnings, net of tax $ (1,692)          
Ending balance (in shares) at Dec. 31, 2023 36,820,048 36,820,048        
Ending balance at Dec. 31, 2023 $ 667,475 $ 39 $ (128,892) $ 537,061 $ 259,045 $ 222
Ending balance (in shares) at Dec. 31, 2023 2,151,098   2,151,098