v3.26.1
CONSOLIDATED BALANCE SHEETS (Parenthetical) - USD ($)
$ in Thousands
Apr. 30, 2026
Apr. 30, 2025
Statement of Financial Position [Abstract]    
Allowance for credit losses $ 419 $ 159
Preferred stock, par value (in dollars per share) $ 0.001 $ 0.001
Preferred stock authorized (in shares) 20,000,000 20,000,000
Preferred stock issued (in shares) 0 0
Preferred stock outstanding (in shares) 0 0
Common stock, par value (in dollars per share) $ 0.001 $ 0.001
Common stock authorized (in shares) 100,000,000 100,000,000
Common stock issued (in shares) 15,288,148 14,974,217
Common stock outstanding (in shares) 12,459,004 12,696,356
Treasury stock (in shares) 2,829,144 2,277,861