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, 2022 | | 26,888,425 | | | |
Beginning balance at Dec. 31, 2022 | $ 697,648 | $ 27 | $ 473,740 | $ 258,236 | $ (34,355) |
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) | | 26,798 | | | |
Common shares issued on exercise of options and other, net of shares withheld for tax obligations | (401) | | (401) | | |
Stock-based compensation expense | 3,695 | | 3,695 | | |
Repurchases of common stock (in shares) | | (712,500) | | | |
Repurchases of common stock | (21,325) | $ (1) | (11,849) | (9,475) | |
Net income (loss) | 2,659 | | | 2,659 | |
Other comprehensive income | | | | | |
Foreign currency translation adjustment | 527 | | | | 527 |
Net unrealized gains (losses) on investments in securities | 334 | | | | 334 |
Comprehensive income | 3,520 | | | | |
Ending balance (in shares) at Mar. 31, 2023 | | 26,202,723 | | | |
Ending balance at Mar. 31, 2023 | 683,137 | $ 26 | 465,185 | 251,420 | (33,494) |
Beginning balance (in shares) at Dec. 31, 2022 | | 26,888,425 | | | |
Beginning balance at Dec. 31, 2022 | 697,648 | $ 27 | 473,740 | 258,236 | (34,355) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | |
Net income (loss) | 2,276 | | | | |
Other comprehensive income | | | | | |
Comprehensive income | 7,410 | | | | |
Ending balance (in shares) at Jun. 30, 2023 | | 26,095,434 | | | |
Ending balance at Jun. 30, 2023 | 682,685 | $ 26 | 464,950 | 246,930 | (29,221) |
Beginning balance (in shares) at Mar. 31, 2023 | | 26,202,723 | | | |
Beginning balance at Mar. 31, 2023 | 683,137 | $ 26 | 465,185 | 251,420 | (33,494) |
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) | | 169,229 | | | |
Common shares issued on exercise of options and other, net of shares withheld for tax obligations | 962 | | 962 | | |
Stock-based compensation expense | 3,675 | | 3,675 | | |
Repurchases of common stock (in shares) | | (276,518) | | | |
Repurchases of common stock | (8,979) | | (4,872) | (4,107) | |
Net income (loss) | (383) | | | (383) | |
Other comprehensive income | | | | | |
Foreign currency translation adjustment | 4,254 | | | | 4,254 |
Net unrealized gains (losses) on investments in securities | 19 | | | | 19 |
Comprehensive income | 3,890 | | | | |
Ending balance (in shares) at Jun. 30, 2023 | | 26,095,434 | | | |
Ending balance at Jun. 30, 2023 | $ 682,685 | $ 26 | 464,950 | 246,930 | (29,221) |
Beginning balance (in shares) at Dec. 31, 2023 | 25,721,957 | 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 and other (in shares) | | (435,861) | | | |
Repurchases of common stock and other | (16,164) | | (7,912) | (8,252) | |
Net income (loss) | 5,268 | | | 5,268 | |
Other comprehensive income | | | | | |
Foreign currency translation adjustment | (925) | | | | (925) |
Net unrealized gains (losses) 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 | 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 (loss) | 9,808 | | | | |
Other comprehensive income | | | | | |
Comprehensive income | $ 8,389 | | | | |
Ending balance (in shares) at Jun. 30, 2024 | 25,147,616 | 25,147,616 | | | |
Ending balance at Jun. 30, 2024 | $ 685,236 | $ 26 | 461,400 | 253,242 | (29,432) |
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 and other (in shares) | | (345,234) | | | |
Repurchases of common stock and other | (10,978) | | (6,266) | (4,712) | |
Net income (loss) | 4,540 | | | 4,540 | |
Other comprehensive income | | | | | |
Foreign currency translation adjustment | (678) | | | | (678) |
Net unrealized gains (losses) on investments in securities | 91 | | | | 91 |
Comprehensive income | $ 3,953 | | | | |
Ending balance (in shares) at Jun. 30, 2024 | 25,147,616 | 25,147,616 | | | |
Ending balance at Jun. 30, 2024 | $ 685,236 | $ 26 | $ 461,400 | $ 253,242 | $ (29,432) |