v3.25.2
CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY - USD ($)
$ in Thousands
Common Stock
Additional Paid-in Capital
Retained Earnings
Treasury Stock
Accumulated Other Comprehensive Loss
Total
Balance at Jan. 31, 2024 $ 2,374 $ 164,183 $ 225,507 $ (97,528) $ (3,597) $ 290,939
Balances (in shares) at Jan. 31, 2024 13,242,520          
Net income     7,882     7,882
Foreign currency translation gain (loss)         (790) (790)
Net unrealized gains (losses) on available-for-sale securities         (969) (969)
Stock compensation expense   1,211       1,211
Stock option exercises and restricted stock unit settlements, net   (893)   (13)   (906)
Stock option exercises and restricted stock unit settlements, net (in shares) 113,260          
Common stock repurchases       (187)   (187)
Common stock repurchases (in shares) (5,600)          
Cash dividends     (4,025)     (4,025)
Balance at Apr. 30, 2024 $ 2,374 164,501 229,364 (97,728) (5,356) 293,155
Balances (in shares) at Apr. 30, 2024 13,350,180          
Balance at Jan. 31, 2024 $ 2,374 164,183 225,507 (97,528) (3,597) 290,939
Balances (in shares) at Jan. 31, 2024 13,242,520          
Net income           26,080
Net unrealized gains (losses) on available-for-sale securities           $ 490
Common stock repurchases (in shares)           (5,600)
Balance at Jul. 31, 2024 $ 2,374 165,902 243,519 (99,644) (4,083) $ 308,068
Balances (in shares) at Jul. 31, 2024 13,497,550          
Balance at Apr. 30, 2024 $ 2,374 164,501 229,364 (97,728) (5,356) 293,155
Balances (in shares) at Apr. 30, 2024 13,350,180          
Net income     18,198     18,198
Foreign currency translation gain (loss)         (186) (186)
Net unrealized gains (losses) on available-for-sale securities         1,459 1,459
Stock compensation expense   1,004       1,004
Stock option exercises and restricted stock unit settlements, net   397   (1,916)   (1,519)
Stock option exercises and restricted stock unit settlements, net (in shares) 147,370          
Cash dividends     (4,043)     (4,043)
Balance at Jul. 31, 2024 $ 2,374 165,902 243,519 (99,644) (4,083) 308,068
Balances (in shares) at Jul. 31, 2024 13,497,550          
Balance at Jan. 31, 2025 $ 2,374 168,966 292,698 (105,643) (6,538) 351,857
Balances (in shares) at Jan. 31, 2025 13,634,214          
Net income     22,550     22,550
Foreign currency translation gain (loss)         3,621 3,621
Net unrealized gains (losses) on available-for-sale securities         2,680 2,680
Stock compensation expense   1,188       1,188
Stock option exercises and restricted stock unit settlements, net   (4,556)   (1,526)   (6,082)
Stock option exercises and restricted stock unit settlements, net (in shares) 59,472          
Common stock repurchases       (6,849)   (6,849)
Common stock repurchases (in shares) (55,117)          
Cash dividends     (5,070)     (5,070)
Balance at Apr. 30, 2025 $ 2,374 165,598 310,178 (114,018) (237) 363,895
Balances (in shares) at Apr. 30, 2025 13,638,569          
Balance at Jan. 31, 2025 $ 2,374 168,966 292,698 (105,643) (6,538) 351,857
Balances (in shares) at Jan. 31, 2025 13,634,214          
Net income           57,825
Net unrealized gains (losses) on available-for-sale securities           $ 1,598
Common stock repurchases (in shares)           (56,117)
Balance at Jul. 31, 2025 $ 2,374 166,616 340,276 (114,520) (1,570) $ 393,176
Balances (in shares) at Jul. 31, 2025 13,811,575          
Balance at Apr. 30, 2025 $ 2,374 165,598 310,178 (114,018) (237) 363,895
Balances (in shares) at Apr. 30, 2025 13,638,569          
Net income     35,275     35,275
Foreign currency translation gain (loss)         (251) (251)
Net unrealized gains (losses) on available-for-sale securities         (1,082) (1,082)
Stock compensation expense   2,265       2,265
Stock option exercises and restricted stock unit settlements, net   (1,247)   (303)   (1,550)
Stock option exercises and restricted stock unit settlements, net (in shares) 174,006          
Common stock repurchases       (199)   (199)
Common stock repurchases (in shares) (1,000)          
Cash dividends     (5,177)     (5,177)
Balance at Jul. 31, 2025 $ 2,374 $ 166,616 $ 340,276 $ (114,520) $ (1,570) $ 393,176
Balances (in shares) at Jul. 31, 2025 13,811,575