XML 16 R5.htm IDEA: XBRL DOCUMENT v3.25.3
Consolidated Statements of Shareholders' Equity - USD ($)
$ in Thousands
Total
Common Stock
Additional Paid-In Capital
Retained Earnings
Accumulated Other Comprehensive Loss
Beginning balance (in shares) at Dec. 31, 2023   25,721,957      
Beginning balance at Dec. 31, 2023 $ 695,295 $ 26 $ 466,884 $ 256,398 $ (28,013)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares)   29,974      
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (533)   (533)    
Stock-based compensation expense 4,276   4,276    
Repurchases of common stock (in shares)   (435,861)      
Repurchases of common stock (16,164)   (7,912) (8,252)  
Net income 5,268     5,268  
Other comprehensive income          
Foreign currency translation adjustment (925)       (925)
Net unrealized gains on investments in securities 93       93
Comprehensive income 4,436        
Ending balance (in shares) at Mar. 31, 2024   25,316,070      
Ending balance at Mar. 31, 2024 687,310 $ 26 462,715 253,414 (28,845)
Beginning balance (in shares) at Dec. 31, 2023   25,721,957      
Beginning balance at Dec. 31, 2023 695,295 $ 26 466,884 256,398 (28,013)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Net income 16,997        
Other comprehensive income          
Comprehensive income 18,158        
Ending balance (in shares) at Sep. 30, 2024   24,510,076      
Ending balance at Sep. 30, 2024 679,993 $ 25 454,025 252,795 (26,852)
Beginning balance (in shares) at Mar. 31, 2024   25,316,070      
Beginning balance at Mar. 31, 2024 687,310 $ 26 462,715 253,414 (28,845)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares)   176,780      
Common shares issued on exercise of options and other, net of shares withheld for tax obligations 707   707    
Stock-based compensation expense 4,244   4,244    
Repurchases of common stock (in shares)   (345,234)      
Repurchases of common stock (10,978)   (6,266) (4,712)  
Net income 4,540     4,540  
Other comprehensive income          
Foreign currency translation adjustment (678)       (678)
Net unrealized gains on investments in securities 91       91
Comprehensive income 3,953        
Ending balance (in shares) at Jun. 30, 2024   25,147,616      
Ending balance at Jun. 30, 2024 685,236 $ 26 461,400 253,242 (29,432)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Stock-based compensation expense 4,196   4,196    
Repurchases of common stock (in shares)   (637,540)      
Repurchases of common stock (19,208) $ (1) (11,571) (7,636)  
Net income 7,189     7,189  
Other comprehensive income          
Foreign currency translation adjustment 2,430       2,430
Net unrealized gains on investments in securities 150       150
Comprehensive income 9,769        
Ending balance (in shares) at Sep. 30, 2024   24,510,076      
Ending balance at Sep. 30, 2024 $ 679,993 $ 25 454,025 252,795 (26,852)
Beginning balance (in shares) at Dec. 31, 2024 24,226,088 24,226,088      
Beginning balance at Dec. 31, 2024 $ 670,151 $ 24 453,705 244,406 (27,984)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares)   58,291      
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (961)   (961)    
Stock-based compensation expense 3,992   3,992    
Repurchases of common stock (in shares)   (513,739)      
Repurchases of common stock (21,073) $ (1) (9,621) (11,451)  
Net income 3,599     3,599  
Other comprehensive income          
Foreign currency translation adjustment 1,003       1,003
Net unrealized gains on investments in securities 90       90
Comprehensive income 4,692        
Ending balance (in shares) at Mar. 31, 2025   23,770,640      
Ending balance at Mar. 31, 2025 $ 656,801 $ 23 447,115 236,554 (26,891)
Beginning balance (in shares) at Dec. 31, 2024 24,226,088 24,226,088      
Beginning balance at Dec. 31, 2024 $ 670,151 $ 24 453,705 244,406 (27,984)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Net income 15,242        
Other comprehensive income          
Comprehensive income $ 18,502        
Ending balance (in shares) at Sep. 30, 2025 23,677,746 23,677,746      
Ending balance at Sep. 30, 2025 $ 664,719 $ 23 450,852 238,568 (24,724)
Beginning balance (in shares) at Mar. 31, 2025   23,770,640      
Beginning balance at Mar. 31, 2025 656,801 $ 23 447,115 236,554 (26,891)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares)   179,393      
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (58)   (58)    
Stock-based compensation expense 4,259   4,259    
Repurchases of common stock (in shares)   (75,432)      
Repurchases of common stock (3,050)   (1,413) (1,637)  
Net income 4,427     4,427  
Other comprehensive income          
Foreign currency translation adjustment 2,300       2,300
Net unrealized gains on investments in securities 28       28
Comprehensive income 6,755        
Ending balance (in shares) at Jun. 30, 2025   23,874,601      
Ending balance at Jun. 30, 2025 664,707 $ 23 449,903 239,344 (24,563)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares)   61,599      
Common shares issued on exercise of options and other, net of shares withheld for tax obligations 2,112   2,112    
Stock-based compensation expense 3,677   3,677    
Repurchases of common stock (in shares)   (258,454)      
Repurchases of common stock (12,832)   (4,840) (7,992)  
Net income 7,216     7,216  
Other comprehensive income          
Foreign currency translation adjustment (227)       (227)
Net unrealized gains on investments in securities 66       66
Comprehensive income $ 7,055        
Ending balance (in shares) at Sep. 30, 2025 23,677,746 23,677,746      
Ending balance at Sep. 30, 2025 $ 664,719 $ 23 $ 450,852 $ 238,568 $ (24,724)