Condensed Consolidated Statements of Changes in Stockholders' Equity (Unaudited) - USD ($) $ in Thousands |
Share Repurchase Program [Member]
Common Stock Outstanding [Member]
|
Share Repurchase Program [Member]
Additional Paid-in Capital [Member]
|
Share Repurchase Program [Member]
Treasury Stock, Common [Member]
|
Share Repurchase Program [Member]
AOCI Attributable to Parent [Member]
|
Share Repurchase Program [Member]
Retained Earnings [Member]
|
Share Repurchase Program [Member] |
Stock-based Program [Member]
Common Stock Outstanding [Member]
|
Stock-based Program [Member]
Additional Paid-in Capital [Member]
|
Stock-based Program [Member]
Treasury Stock, Common [Member]
|
Stock-based Program [Member]
AOCI Attributable to Parent [Member]
|
Stock-based Program [Member]
Retained Earnings [Member]
|
Stock-based Program [Member] |
Common Stock Outstanding [Member] |
Additional Paid-in Capital [Member] |
Treasury Stock, Common [Member] |
AOCI Attributable to Parent [Member] |
Retained Earnings [Member] |
Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Balance (in shares) at Oct. 31, 2023 | 54,757,445 | |||||||||||||||||
Balance at Oct. 31, 2023 | $ 6 | $ 383,286 | $ (15,114) | $ (5,491) | $ (54,447) | $ 308,240 | ||||||||||||
Stock-based compensation expense | 0 | 1,917 | 0 | 0 | 0 | $ 1,917 | ||||||||||||
Treasury shares purchased (in shares) | (577,542) | (522,524) | (578,000) | |||||||||||||||
Treasury shares purchased | $ 0 | $ 0 | $ (3,977) | $ 0 | $ 0 | $ (3,977) | $ 0 | $ 0 | $ (3,184) | $ 0 | $ 0 | $ (3,184) | ||||||
Net income | 0 | 0 | 0 | 0 | 6,780 | $ 6,780 | ||||||||||||
Foreign currency translation adjustment | $ 0 | 0 | 0 | 4,874 | 0 | 4,874 | ||||||||||||
Forfeiture/cancellation of restricted stock (in shares) | (751,397) | |||||||||||||||||
Forfeiture/cancellation of restricted stock | $ 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||
Shares issued under stock-based program (in shares) | 842,041 | |||||||||||||||||
Shares issued under stock-based program | $ 0 | 26 | 0 | 0 | 0 | 26 | ||||||||||||
Balance (in shares) at Jul. 31, 2024 | 53,748,023 | |||||||||||||||||
Balance at Jul. 31, 2024 | $ 6 | 385,229 | (22,275) | (617) | (47,667) | 314,676 | ||||||||||||
Balance (in shares) at Apr. 30, 2024 | 53,741,044 | |||||||||||||||||
Balance at Apr. 30, 2024 | $ 6 | 384,585 | (18,131) | (2,932) | (55,227) | 308,301 | ||||||||||||
Stock-based compensation expense | 0 | 644 | 0 | 0 | 0 | $ 644 | ||||||||||||
Treasury shares purchased (in shares) | (370,419) | (330,982) | (371,000) | |||||||||||||||
Treasury shares purchased | $ 0 | 0 | (2,460) | 0 | 0 | (2,460) | $ 0 | 0 | (1,683) | 0 | 0 | (1,683) | ||||||
Net income | 0 | 0 | 0 | 0 | 7,560 | $ 7,560 | ||||||||||||
Foreign currency translation adjustment | $ 0 | 0 | 0 | 2,315 | 0 | 2,315 | ||||||||||||
Forfeiture/cancellation of restricted stock (in shares) | (812) | |||||||||||||||||
Forfeiture/cancellation of restricted stock | $ 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||
Shares issued under stock-based program (in shares) | 709,192 | |||||||||||||||||
Shares issued under stock-based program | $ 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||
Balance (in shares) at Jul. 31, 2024 | 53,748,023 | |||||||||||||||||
Balance at Jul. 31, 2024 | $ 6 | 385,229 | (22,275) | (617) | (47,667) | 314,676 | ||||||||||||
Balance (in shares) at Oct. 31, 2024 | 53,273,644 | |||||||||||||||||
Balance at Oct. 31, 2024 | $ 6 | 386,313 | (25,881) | (483) | (38,240) | 321,715 | ||||||||||||
Stock-based compensation expense | 0 | 1,431 | 0 | 0 | 0 | $ 1,431 | ||||||||||||
Treasury shares purchased (in shares) | (1,904,041) | (246,121) | (1,904,000) | |||||||||||||||
Treasury shares purchased | $ 0 | 0 | (11,770) | 0 | 0 | (11,770) | $ 0 | $ 0 | $ (2,166) | $ 0 | $ 0 | $ (2,166) | ||||||
Net income | 0 | 0 | 0 | 0 | 1,056 | $ 1,056 | ||||||||||||
Foreign currency translation adjustment | $ 0 | 0 | 0 | 2,668 | 0 | 2,668 | ||||||||||||
Shares issued under stock-based program (in shares) | 416,546 | |||||||||||||||||
Shares issued under stock-based program | $ 0 | 1,519 | 0 | 0 | 1,519 | |||||||||||||
Balance (in shares) at Jul. 31, 2025 | 51,540,028 | |||||||||||||||||
Balance at Jul. 31, 2025 | $ 6 | 389,263 | (39,817) | 2,185 | (90,316) | 261,321 | ||||||||||||
Dividend | $ 0 | 0 | 0 | 0 | (53,132) | (53,132) | ||||||||||||
Balance (in shares) at Apr. 30, 2025 | 52,132,683 | |||||||||||||||||
Balance at Apr. 30, 2025 | $ 6 | 388,737 | (35,972) | 3,089 | (94,015) | 261,845 | ||||||||||||
Stock-based compensation expense | 0 | 526 | 0 | 0 | 0 | $ 526 | ||||||||||||
Treasury shares purchased (in shares) | (592,655) | (593,000) | ||||||||||||||||
Treasury shares purchased | $ 0 | $ 0 | $ (3,845) | $ 0 | $ 0 | $ (3,845) | ||||||||||||
Net income | 0 | 0 | 0 | 0 | 3,699 | $ 3,699 | ||||||||||||
Foreign currency translation adjustment | $ 0 | 0 | 0 | (904) | 0 | (904) | ||||||||||||
Balance (in shares) at Jul. 31, 2025 | 51,540,028 | |||||||||||||||||
Balance at Jul. 31, 2025 | $ 6 | $ 389,263 | $ (39,817) | $ 2,185 | $ (90,316) | $ 261,321 |