v3.26.1
Basic and Diluted Net Income (Loss) Per Share - Computation of Basic and Diluted Net Income (Loss) Per Share (Details) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended
Apr. 30, 2026
Apr. 30, 2025
Numerator    
Net income (loss) $ 2,582 $ (141)
Denominator    
Basic weighted-average common shares 27,495,292 27,445,911
Potentially dilutive shares from equity plans 602,888  
Diluted weighted-average common shares 28,098,180 27,445,911
Basic net income (loss) per share $ 0.09 $ (0.01)
Diluted net income (loss) per share $ 0.09 $ (0.01)